2015-11-30 128 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中的所有列,但在其他數據庫中,它不會工作。 –

相關問題