2014-10-28 46 views
0
$Sql = "SELECT * FROM Table1 INNER JOIN Table2 ON Table1.Schedule_ID = Table2.SheduleId WHERE Table1.ID = '$id' AND Table2.Scheduled = '1'"; 

Table1該行如果Table1.Schedule_ID具有相同的值作爲Table2.SheduleId記錄才被選中。對於Table1中的TWO值,它從Table2中選擇相同的行TWICE。我想避免這種情況,並使Table2SELECT中的每一行只能使用一次。我試過SELECT DISTINCT * FROM Table1但是無濟於事。來自內心的選擇記錄連接表只有一次

請提供建議。

+0

如果存在2條記錄,應該從table2中選擇哪一行?您需要在查詢中告訴數據庫 – 2014-10-28 18:09:56

+0

因此,您在'Table2'中有兩行,其'SheduleId'具有相同的值,並且兩行不包含相同的數據(否則「DISTINCT *」將具有可能爲你照顧它)。那麼哪一行是正確的,哪一個不是?這不是一個問題,在這裏任何人都可以修復 - 你將不得不進入你的數據庫,找出哪一行是正確的,並擺脫另一個。祝你好運。 – 2014-10-28 18:15:22

+0

謝謝。可以選擇兩行,但我希望查詢中的每一行只能使用一次。 (不用於Table1中的兩行)。如果我有道理 – user2993497 2014-10-28 18:19:53

回答

0

如果我深知,請試試這個修改:

$Sql = "SELECT DISTINCT Table2.* FROM Table1 INNER JOIN Table2 ON Table1.Schedule_ID = Table2.SheduleId WHERE Table1.ID = '$id' AND Table2.Scheduled = '1'"; 

我希望它會以任何方式幫助。