![](/img/trans.png)
[英]SQL Query - select all from one table with matching records in another
[英]Query to retrieve main records in one table and its all sub records from another table
讓我們假設我們有諸如問題和答案之類的表格
qno question 1 first question 2 second question
ano qno answer 1 1 first answer for q1 2 1 second answer for q1 3 2 first answer for q2 4 1 third answer for q1 5 2 second answer for q2
現在我需要在mysql中查詢一個查詢,該查詢可以輸出每個問題及其所有答案
qno ano question answer --- --- ---------- ------------------- 1 0 first question 1 1 first answer for q1 1 2 second answer for q1 1 4 third answer for q1 2 0 second question 2 3 first answer for q2 2 5 second answer for q2
通常, JOIN
不會以您顯示為所需結果的格式輸出結果。 SQL中的JOIN
運算符將一個表中的行與另一個表中的行進行匹配,因此它將反復產生question
,這不是您想要的。
要獲得所需的內容,請使用UNION
而不是JOIN
,然后將它們放置在所需的列中:
(SELECT qno, 0, question, NULL AS `answer` FROM questions)
UNION
(SELECT qno, ano, NULL, answer FROM answers)
ORDER BY qno, ano
對於它的價值,我同意草莓的評論。 我實際上不會在我的應用程序中執行此操作。 我將以更簡單的格式獲取數據,並在我的應用程序代碼中以所需的布局顯示數據。
我上面的例子只是為了說明將數據處理到SQL中的布局中會使代碼不太清晰。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.