Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL:Pulling id';从一个表中获取名称以从另一个表中获取名称_Sql - Fatal编程技术网

SQL:Pulling id';从一个表中获取名称以从另一个表中获取名称

SQL:Pulling id';从一个表中获取名称以从另一个表中获取名称,sql,Sql,假设我有两张桌子。一个有头发颜色和用户id TABLE A: USER_ID HAIR_COLOR 1 black 2 black 2 black 3 blonde ... 以及另一个具有用户ID和名称的: TABLE B: USER_ID NAME 1 John 2 Jane 3 Sally 我想在一个命令中获得所有金发用户的列表。问题是,我也只想要表A中重

假设我有两张桌子。一个有头发颜色和用户id

TABLE A:

USER_ID   HAIR_COLOR
1         black
2         black
2         black
3         blonde
...
以及另一个具有用户ID和名称的:

TABLE B: 

USER_ID    NAME
1          John
2          Jane
3          Sally
我想在一个命令中获得所有金发用户的列表。问题是,我也只想要表A中重复的用户

我是SQL新手,但我相信您可以在这里获得所有金发碧眼的用户id,这些用户id与:

SELECT
    user_id
FROM
    A
GROUP BY
    user_id, hair_color
HAVING 
    COUNT(*) > 1
但是我不知道如何通过表B将用户ID列表转换为实际名称


(这是一个简单的MWE,我意识到有更好的方法来格式化DBs。)

看起来您可以简单地使用子查询扩展查询:

SELECT
    user_id, (SELECT name FROM B WHERE B.user_id = A.user_id)
FROM
    A
GROUP BY
    user_id, hair_color
HAVING 
    COUNT(*) > 1

看起来您可以通过一个子查询轻松地扩展查询:

SELECT
    user_id, (SELECT name FROM B WHERE B.user_id = A.user_id)
FROM
    A
GROUP BY
    user_id, hair_color
HAVING 
    COUNT(*) > 1
尝试以下操作(扩展查询):

尝试以下操作(扩展查询):


这很有效。我喜欢这本书的简洁易懂。这本书非常好用。我喜欢它的简洁易懂。