使用Chinook测试数据库,以下SQL语句在SQLite中起作用:
SELECT * FROM playlist WHERE Name LIKE '%the%'
然而,如果我使用JOIN:
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工作正常:
是什么让SQLite在这里失败?
答案 0 :(得分:1)
您确定playlisttrack
有track
和playlist
吗?
将JOIN
替换为LEFT JOIN
以获取所有playlist
,即使他们没有playlisttrack
或track
答案 1 :(得分:1)
LIKE似乎有效,因为你得到了相同的结果。
问题似乎是三个表中名为“Name”的多个列。我会避免使用“SELECT *”并选择你需要的列,使用别名来清楚说明是什么。