我有两个不同列名的表。
表1
alias_id | key | keyword
1 a=1 xx
2 b=1 xxxx
表2
product_id | store_id
1 1
2 7
我希望查询来自keyword
所有table1
行a=1
以及table2
product_id=1
和store_id=7.
在table1
key
列中包含key_id=20
,但在table2
我有product_id
列,其中包含20
我尝试了很多选项,例如union
和join
,但不知何故不想为我工作。
答案 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