gpt4 book ai didi

mysql - SQL 加入缺失行

转载 作者:行者123 更新时间:2023-11-30 22:07:25 24 4
gpt4 key购买 nike

我有以下两个表。

调查表:

 QID |  Text   ----------------------------------------  1  | Favorite movie  2  | Favorite book  3  | Favorite city

调查回复:

 UserID | QID |  Answer   ----------------------------------------  1001  | 1  | StarWars  1001  | 2  | Harry Potter  1001  | 3  | Los Angeles  1003  | 3  | New York

我想得到一个回复​​,其中包含用户在调查中没有回答的所有问题。
SQL 连接的预期输出:

 UserID | QID |  Answer   ----------------------------------------  1001  | 1  | StarWars  1001  | 2  | Harry Potter  1001  | 3  | Los Angeles  1003  | 1  | -  1003  | 2  | -  1003  | 3  | New York

我尝试了各种 SQL 查询组合,但没有成功。请帮忙。

最佳答案

由于您没有提供Users 表,您最终可能会得到这样的结果:

SELECT
U.UserId, Q.QID, A.Answer
FROM SurveyTable Q
CROSS JOIN (SELECT DISTINCT UserId FROM SurveyResponses) U
LEFT JOIN SurveyResponses A ON A.QID = Q.QID AND U.UserId = A.UserId

虽然在现实生活中您真的希望避免这样做,但如果您的表变得接近大型,交叉连接可能会耗尽服务器的所有性能。

最好有一个 Users 表,这样您就可以使用它并像这样左连接:

SELECT
U.UserId, Q.QID, A.Answer
FROM Users U
INNER JOIN SurveyTable Q
LEFT JOIN SurveyResponses A ON A.UserId = U.UserId AND A.QID = Q.QID

关于mysql - SQL 加入缺失行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41175515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com