MySQL连接查询-
我知道这个问题在这里已经问过了,但我无法从前面的答案中找出这个问题 我们有两张桌子:MySQL连接查询-,mysql,sql,Mysql,Sql,我知道这个问题在这里已经问过了,但我无法从前面的答案中找出这个问题 我们有两张桌子: members ----------------------- | id | country_iso_3 | ----------------------- 1 USA 2 DZA 3 FRA 4 ILI 5 USA 6 USA members_details ----------------------- | member_id | city
members
-----------------------
| id | country_iso_3 |
-----------------------
1 USA
2 DZA
3 FRA
4 ILI
5 USA
6 USA
members_details
-----------------------
| member_id | city |
-----------------------
1 AA
2 BB
3 CC
4 DD
5 EE
6 FF
现在我想查询成员的详细信息并选择来自相同国家的城市,这里的“AA”、“EE”和“FF”应该是结果(因为成员来自美国)
我知道如何比较不同表中的不同COL,但这里我们需要检查第二个表'member_id'和第一个表'id(country_iso_3)' 只需
将这两个表连接起来,在其中添加一个WHERE
子句,用于您想要获得的国家/地区的城市,如下所示:
SELECT md.city
FROM members m
INNER JOIN members_details md ON m.id = md.memberid
WHERE m.country_iso_3 = 'USA'
这不仅适用于美国,而且适用于任何不止一次列出的国家:
SELECT d.city
FROM members m,
members_details d
WHERE d.member_id = m.id
AND m.country_iso_3 IN (
SELECT country_iso_3
FROM members
GROUP BY 1
HAVING count(1) > 1
)
SELECT d.city
FROM members m,
members_details d
WHERE d.member_id = m.id
AND m.country_iso_3 IN (
SELECT country_iso_3
FROM members
GROUP BY 1
HAVING count(1) > 1
)