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%' 

MySQLは正常に動作しますが、SQLiteはWHEREステートメントで失敗します。

ここに画像の説明を入力してください

ここでSQLiteが失敗する理由は何ですか?

4

2 に答える 2

1

playlisttrackあなたはあなたが持っていると確信していtrackますplaylistか?

またはを持っていない場合でもすべてを取得するためにJOIN置き換えますLEFT JOINplaylistplaylisttracktrack

于 2012-07-24T04:26:57.063 に答える
1

同じ結果が得られるので、LIKEは機能しているようです。

問題は、3つのテーブルに「Name」という名前の複数の列があるようです。「SELECT*」を避け、代わりに必要な列を選択し、エイリアスを使用して何が何であるかを明確にします。

于 2012-07-24T07:39:30.010 に答える