![](/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.