我的mysql中有两个表我想根据两个表的组合查询提取结果。我尝试了加入以及内连接,但
的结构没有成功tableA是
id userid topic
1 34 love
3 64 friendship
35 574 romance
32 253 games
95 633 football
54 26 cricket
648 63 music
tableB是
id location username
34 Australia krkrff
64 india dieiei
574 pakistan frkfrf
253 japan frfffrk
633 india ifirf
26 Australia riiri
63 Australia frffjrr
请注意,在tableA中,userid和TableB id相同.both反映相同用户的数据。我想通过过滤tableB中的location列来显示tableA数据。假设我想显示tableB的主题并且用户属于澳大利亚,那么它应该给出输出:love 蟋蟀 音乐
你可以在表B中看到34,26& 63属于澳大利亚所以输出就是这样。如果位置是印度,那么outpput将是
友谊和足球。请告诉如何编写SQL查询。答案 0 :(得分:8)
以下内容应选择您所描述的内容:
select a.topic
from tableA a
join tableB b on b.id = a.userid
where b.location = 'Australia' -- or whichever location you filter on
相当于:
select a.topic
from tableA a
join tableB b on b.id = a.userid and b.location = 'Australia'
答案 1 :(得分:1)
SELECT a.topic, b.topic FROM tableA a, tableB b WHERE a.id = b.id AND b.location = 'Australia'
答案 2 :(得分:1)
请你详细说明你的意思“tableA userid和TableB id是相同的”,因为它们是不同的,因此我们不能将它们用作键。
据我所知,你很想做一个JOIN,然后只为TOPIC做一个SELECT。
所以,你的查询应该是:
SELECT t1.topic from table1 t1 JOIN tableB t2 on t2.id = t1.id WHERE t2.location = 'Australia'
答案 3 :(得分:1)
试试这个:
SELECT tableA.topic FROM tableA JOIN tableB
ON tableA.userid = tableB.id
WHERE tableB.location = 'Australia';