![](/img/trans.png)
[英]SQL - merge two queries with different number of columns in select statement into one
[英]Merge two subqueries into one in a SELECT statement?
有沒有最好的方法用這兩個子查詢來制作這個 SELECT 語句?
SELECT N.ID, N.NAME
(SELECT TR.PUZZLE
FROM puzzles TR
WHERE TR.TEAMID = "152"
AND TR.NID= N.ID) AS PUZZLE_OK,
(SELECT TR.PUZZLE_BIS
FROM puzzles TR
WHERE TR.TEAMID = "152"
AND TR.NID= N.ID) AS PUZZLE_BIS_OK
FROM news N
WHERE N.SERIESID = "1"
您可以改用JOIN
重寫查詢:
SELECT N.ID, N.NAME, TR.PUZZLE AS PUZZLE_OK, TR.PUZZLE_BIS AS PUZZLE_BIS_OK
FROM news N
JOIN puzzles TR ON TR.NID = N.ID
WHERE N.SERIESID = "1"
AND TR.TEAMID = "152"
請注意,如果對於來自news
的給定ID
值可能不存在puzzles
條目,您應該使用LEFT JOIN
並將puzzles
上的WHERE
條件移動到JOIN
。 然后,這將以與您的子查詢相同的方式返回PUZZLE_OK
和PUZZLE_BIS_OK
NULL
值:
SELECT N.ID, N.NAME, TR.PUZZLE AS PUZZLE_OK, TR.PUZZLE_BIS AS PUZZLE_BIS_OK
FROM news N
LEFT JOIN puzzles TR ON TR.NID = N.ID AND TR.TEAMID = "152"
WHERE N.SERIESID = "1"
注意我已將news
上的別名更改為N
以保持SELECT
子句與您問題中子查詢中的內容一致。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.