如何在mysql中只选择唯一的记录

时间:2013-11-08 12:04:01

标签: mysql

我使用了以下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'  

此查询的输出为:

enter image description here

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

4 个答案:

答案 0 :(得分: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'

答案 1 :(得分:0)

您可以通过分组执行此操作。我不确定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上的问题加入此查询的结果。

答案 2 :(得分:0)

你可以试试这个 即:

从tblfeedbackquestions q中选择q.question,q.formnumber,g.forename,a.guardiancode 加入tblfeedbackanswers a on q.id = a.questionid join tblguardian g on g.guardiancode = a.guardiancode其中q.formnumber ='3'group by a.guardiancode

希望它能起作用...... :)

答案 3 :(得分:-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