2015-06-22 107 views
2

我有两个SQL表匹配列:users & userGroup有类似的数据:SQL查询跨越两个表

用户

user  | age | gender 

    testUserA, 25, Male 
    testUserB, 30, Female 
    testUserC, 35, Male 

userGroup表示

user  | group 

testUserA, groupA 
testUserB, groupA 
testUserC, groupB 

我会如何短语查询列出男性用户s在A组?

+1

你会使用'JOIN'和'WHERE'。这是非常基本的SQL。 –

+0

请告诉我们你已经尝试了什么,并告诉我们你正在使用哪个数据库。 –

+0

您正在使用哪种RDBMS? (MySQL,SQL Server,Oracle等?) – potashin

回答

3

所有你需要的是一个joinwhere条款过滤gendergroup

select u.user 
from user u 
join userGroup ug on u.user = ug.user 
where u.gender = 'Male' 
    and ug.group = 'groupA' 
+1

太棒了,谢谢!我几年没有使用过SQL,也找不到正确的命令。 (我试图联合它。) – arby

0

该查询会将两个表连接在一起,并按性别进行过滤。

SELECT u.User, u.Gender, ug.Group 
FROM user u 
INNER JOIN userGroup ug 
ON u.user = ug.user 
WHERE u.gender = 'Male' 
AND ug.Group = 'groupA'; 
+0

您忘记了'WHERE'子句中的组限制。 –

0

下面是做这件事:

select a.user, a.age, a.gender, b.group from users as a 
inner join userGroup as b on a.user=b.user 
where a.gender='Male' and b.group='groupA'