1

使用 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 在这里失败了?

4

2 回答 2

1

你确定你有playlisttrack并且track为你的playlist

替换JOINLEFT JOIN获取所有内容playlist,即使他们没有playlisttracktrack

于 2012-07-24T04:26:57.063 回答
1

LIKE 似乎有效,因为您得到相同的结果。

问题似乎是三个表中名称为“Name”的多个列。我会避免使用“SELECT *”,而是选择您需要的列,使用别名来明确什么是什么。

于 2012-07-24T07:39:30.010 回答