我有两张桌子, 在table1中我有5行和 在table2 3行
表1:
#no---Name---value
1-----John---100
2-----Cooper-200
3-----Mil----300
4-----Key----200
5-----Van----300
表2:
#MemID-#no---FavID
19-----1-----2
21-----1-----3
22-----2-----5
现在的预期结果:
#no---name---value---MyFav
1-----John---100-----NULL
2-----Cooper-200-----1
3-----Mil----300-----1
4-----Key----200-----NULL
5-----Van----300-----NULL
1表示 - 我的最爱 MyFav - 新专栏(别名) 这是预期的结果,请建议如何获得它。
答案 0 :(得分:0)
只需使用自然连接,它将根据需要使用您的主键作为中介来连接两个表。在您的情况下,我认为主键是#no
有关自然加入的详情,请访问SQL Joins
答案 1 :(得分:0)
我想我理解逻辑。如果该行是John的最爱,您希望MyFav
被标记为1
。您可以使用left join
和更多过滤来执行此操作:
select t1.*,
(case when t2.#no is not null then 1 end) as MyFav
from table1 t1 left join
table2 t2
on t1.#no = t2.FavId and
t2.#no = (select tt1.#no from table1 tt1 where tt1.Name = 'John');