2012-07-24 25 views
0

使用奇努克測試數據庫,下面的SQL語句工作在SQLite的:爲什麼SQLite的LIKE%不能在JOIN中工作?

SELECT * FROM playlist WHERE Name LIKE '%the%' 

然而,如果我用聯接:

SELECT * FROM playlist AS pl 
JOIN playlisttrack AS plt ON pl.PlaylistId=plt.PlaylistId 
JOIN track AS t ON plt.TrackId=t.TrackId WHERE pl.Name LIKE '%the%' 

的SQLite在WHERE語句失敗,雖然MySQL的正常工作:

enter image description here

是什麼讓SQLite在這裏失敗?

回答

1

您確定您的playlisttracktrack爲您的playlist

通過LEFT JOIN更換JOIN讓所有playlist即使他們沒有playlisttracktrack

+0

加入左連接給我sqlite的錯誤結果,但在上面的語句 – 2012-07-24 04:32:15

+0

MySQL的正確結果,你可以嘗試沒有「as」關鍵字的表的別名? – maxwell2022 2012-07-24 05:07:57

+0

就是這樣,使用AS並給定每個「名稱」列的唯一標題可以修復sqlite的問題 – 2012-07-24 09:06:43

1

的LIKE似乎工作,因爲你得到同樣的結果。

問題似乎是三個表中名稱爲「名稱」的多個列。我會避免「SELECT *」,並選擇你需要的列,而不是使用別名來清楚什麼是什麼。