2015-11-30 84 views
0

我试图从tbl_attn_temp获取所有数据,TraineeID是匹配tbl_assignedTraineeIDtbl_instructor_infoInstructorID。但我得到的所有数据与tbl_assignedTraineeID匹配。 tbl_instructor_info数据不或与此查询,如下表示:MySQL的比较两个表中查找匹配的记录

tbl_attn_temp

enter image description here

tbl_assigned

enter image description here

tbl_instructor_info

enter image description here

SELECT t1.* 
FROM tbl_attn_temp t1, tbl_instructor_info t2, tbl_assigned t3 
WHERE t1.TraineeID=t3.TraineeID or t2.InstructorID 
GROUP by t1.traineeid, t1.attnDate 

回答

3

Your OR condition is wrong。它应该是这样的WHERE(t1.TraineeID = t3.TraineeID OR t1.TraineeID = t2.InstructorID) 查询应该是这样的:

SELECT t1.* 
FROM tbl_attn_temp t1, tbl_instructor_info t2, tbl_assigned t3 
WHERE (t1.TraineeID = t3.TraineeID OR t1.TraineeID = t2.InstructorID) 
GROUP by t1.traineeid, t1.attnDate 
+0

为什么downvoted ?? –

+0

现在我不能测试,但我应该工作。 –

+0

查询似乎是正确的:你可以提到为什么原来的查询不起作用(不是我downvote;)) – Mikey

0

尝试此查询

SELECT t1.traineeid, t1.attnDate 
FROM tbl_attn_temp t1, tbl_instructor_info t2, tbl_assigned t3 
WHERE (t1.TraineeID=t3.TraineeID or t1.TraineeID=t2.InstructorID) 
GROUP by t1.traineeid, t1.attnDate 

如果使用GROUP BY子句,则可以允许按列选择组(traineeid,attnDate),并允许在一列或多列上执行集合函数。

+0

这对于MySQL来说并不是真的:你可以选择所有的列 - 你只需要得到其中一个值 – Mikey

+0

让我检查MYSQL –

+0

@ Mikey,是的你是对的,我们可以选择MYSQL中的所有列,但在其他数据库中,它不会工作。 –

相关问题