Sql从两个具有不同列

时间:2015-06-15 23:05:02

标签: mysql sql

我有两个不同列名的表。

表1

alias_id | key | keyword
1          a=1   xx
2          b=1   xxxx

表2

product_id | store_id
1            1   
2            7

我希望查询来自keyword所有table1a=1以及table2 product_id=1store_id=7.table1 key列中包含key_id=20,但在table2我有product_id列,其中包含20

我尝试了很多选项,例如unionjoin,但不知何故不想为我工作。

3 个答案:

答案 0 :(得分:0)

根据你在评论中的描述,试试这个:

select key,keyword from table1 where key='a=1'
union all
select product_id,store_id from table2 where product_id='1' and store_id='7'

答案 1 :(得分:0)

要使用Union,我们必须使两个select语句具有相同数量的列和相同的数据类型,

  

在每个SELECT的相应位置列出的选定列   语句应该具有相同的数据类型。

select `alias_id`as c1, `key` as c2, `keyword` as c3
from Table1 where `key` LIKE 'a=%'
union all
select `product_id` as c1, CAST(`store_id` as CHAR(4)) as c2, '' as c3 
from Table2 where store_id=7

直播DEMO

答案 2 :(得分:0)

如果您查询的是没有任何相同字段的两个表,并且有一个" where子句",请使用:

WITH query1 as (Select t1.a from t1 where t1.a = 'xxxxx'),
     query2 as (Select t2.b from t2 where t2.b = 'yyyyy')
Select * FROM query1 FULL OUTER JOIN query2 on t1.a <> t2.b