簡體   English   中英

查詢以檢索一個表中的主記錄以及來自另一表的所有子記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM