我正在尝试将来自两个表的数据合并到一个结果中。使用简化的示例表,这就是我想要得到的结果:
ID Text Choice
--------------------------------
1 My first choice 0
2 My second choice 0
3 My third choice 1
从两个表persons中选择
'人':
ID Name Age
-------------------
1 Adam 22
2 Scott 25
3 Tom 28
“选择”:
ID Text
----------------------
1 My first choice
2 My second choice
3 My third choice
'Choices_made':
Person_ID Choice_ID
----------------------
2 3
我尝试了一些不同的查询,但没有找到正确的查询。我在尝试这个查询时卡住了:
SELECT * FROM (
(SELECT * FROM Choices) t1
UNION
(SELECT 1 as Choice FROM Choices_made WHERE Person_ID=2) t2
) t_union
...这是行不通的。它会导致错误 #1064 - 您的 SQL 语法有误。
关于如何实现预期结果有什么建议吗?
最佳答案
你可以尝试下一个查询
SELECT Choices.*
,IF(Choices_made.Choice_ID IS NULL, 0, 1) AS Choice
FROM Choices
LEFT JOIN Choices_made ON Choices_made.Choice_ID = Choices.ID AND Choices_made.Person_ID = @PersonID
关于mysql - SQL - 将 select * 查询与 select 1 组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31395323/