0

我使用了以下 mysql 查询:

select q.question,q.formnumber,g.forename,a.guardiancode from tblfeedbackquestions q
join tblfeedbackanswers a on q.id=a.questionid join tblguardian g on g.guardiancode=a.guardiancode where q.formnumber='3'  

此查询的输出是:

在此处输入图像描述

现在我想要的只是相同监护人代码的第一行应该出现在第 1 行和第 2 行的输出中,我的监护人代码为 10025,但我只想要第一行,并且对于每个唯一的监护人代码也是如此。请帮助我。

4

4 回答 4

0

您可以使用DISTINCT从表中获取唯一值,

  SELECT DISTINCT column_name,column_name FROM table_name;  

添加DISTINCT了监护人代码列,

   select q.question,q.formnumber,g.forename,DISTINCT a.guardiancode from tblfeedbackquestions q join tblfeedbackanswers a on q.id=a.questionid join tblguardian g on g.guardiancode=a.guardiancode where q.formnumber='3'
于 2013-11-08T12:07:47.207 回答
0

您可以通过 group by 执行此操作。我不确定 MySQL,但在大多数 SQL 实现中,这意味着您无法显示未分组的值。例如:

select a.guardiancode, min(q.id) 
from tblfeedbackquestions q
join tblfeedbackanswers a on q.id=a.questionid
join tblguardian g on g.guardiancode=a.guardiancode
where q.formnumber='3'
group by a.guardiancode;

您现在可以将此查询的结果与关于问题 ID 的问题结合起来。

于 2013-11-08T12:11:51.553 回答
0

你可以试试这个,即:

select q.question,q.formnumber,g.forename,a.guardiancode from tblfeedbackquestions q join tblfeedbackanswers a on q.id=a.questionid join tblguardian g on g.guardiancode=a.guardiancode where q.formnumber='3' group通过 a.guardiancode

希望它会工作...... :)

于 2013-11-08T12:13:12.183 回答
-2

尝试添加GROUP BY

select q.question,q.formnumber,g.forename,a.guardiancode 
from tblfeedbackquestions q
join tblfeedbackanswers a on q.id=a.questionid join tblguardian g 
on g.guardiancode=a.guardiancode 
where q.formnumber='3'  
GROUP BY g.guardiancode 
于 2013-11-08T12:07:29.200 回答