查询多个表但从任何一个表中获取结果而没有JOIN mysql

时间:2018-02-13 12:14:36

标签: mysql sql database rdbms

我的2张桌子的描述:

table1
id (int),
bid (int),
trs (varchar 10)

table2
id (int),
bid (int),
ref_table (varchar 10)
trs (varchar 10)

br 
id    bid     trs
1     213     1913
2     2174    1920

bt 
id    bid     ref_table   trs 
1     212     room        1913 
2     214     room        1920

我希望输出只有br的1行,其中bid = 2174

我想在bid上查询两个表并获取匹配的行。 特定出价可以在任何一个表中,两个表中都不存在。

SELECT bt.*, br.* FROM bt, br where br.bid = 2174 OR bid = 2174

但这会给我一个表中的匹配行+来自其他表的所有行。 请建议。

因为我试图在mysql中执行此操作,同时标记mysql

1 个答案:

答案 0 :(得分:1)

我猜union all做你想做的事:

select id, bid, trs, null as ref_table
from br
where bid = 2174
union all
select id, bid, trs, ref_table
from bt
where bid = 2174;