2017-08-04 33 views
-1

任何人都可以指出什么是错用下面的代码,请MYSQL - 其中ID多次出现在列名的显示列表

---与正确答案EDITED ---

SELECT hist.TutorID, FirstName, LastName, COUNT(hist.TutorID) as 
number_students 
FROM match_history as hist 
JOIN tutor ON tutor.TutorID 
WHERE hist.TutorID = tutor.TutorID 
GROUP BY hist.TutorID 
HAVING (number_students > 1) 
+0

见https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-我想成为一个非常简单的sql查询 – Strawberry

回答

0

添加“分组依据”你的子查询,并在where子句:

SELECT tut.TutorID, FirstName, LastName 
FROM tutor AS tut 
WHERE tutorid in (SELECT TutorID FROM match_history group by tutorid HAVING COUNT(TutorID) >1); 

。希望名字和来自老师的桌子姓氏。或者提供你的表格结构。

+0

这会返回一个错误'错误代码:1242.子查询返回多于1行 ' –

+0

尝试更新的脚本... – Ikrom

+0

@Rick D请让我们知道您的问题是否通过设置绿色标志和投票答案来解决。谢谢。 – Ikrom

0
SELECT tut.TutorID, FirstName, LastName 
FROM tutor AS tut, match_history as hist 
WHERE tut.TutorID in (SELECT TutorID FROM match_history GROUP BY TutorID HAVING COUNT(TutorID) > 1); 

内选择提供了具有一个计数> 1 TutorIDs的列表,外部只从由内选择设置ID的列表中选择抓斗id和其他列。

0
SELECT tut.TutorID, 
FirstName, 
LastName 
FROM tutor AS tut 
LEFT JOIN match_history hist ON (tut.TutorID = hist.TutorID) 
GROUP BY tut.TutorID 
HAVING COUNT(hist.TutorID) > 1 
0

使用GROUP BY条款:

SELECT tut.TutorID, FirstName, LastNamecode 
FROM tutor AS tut, match_history as hist 
WHERE tut.TutorID in (SELECT TutorID FROM match_history 
GROUP BY TutorID 
HAVING COUNT(TutorID) > 1);