我的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
答案 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;