のC#と私はsqlite別の選択肢から結果を使用して選択するにはどうすればよいですか? SQLiteの中
SELECT * FROM media WHERE mediaId= for each
SELECT mediaId FROM fav WHERE userId=1 ORDER BY indx DESC LIMIT 0, 100
構文は明らかに間違っているをしたいです。私は別の選択ステートメントからparamを使用する方法を知りません。
のC#と私はsqlite別の選択肢から結果を使用して選択するにはどうすればよいですか? SQLiteの中
SELECT * FROM media WHERE mediaId= for each
SELECT mediaId FROM fav WHERE userId=1 ORDER BY indx DESC LIMIT 0, 100
構文は明らかに間違っているをしたいです。私は別の選択ステートメントからparamを使用する方法を知りません。
あなたの無効な構文のほとんどは直接翻訳:
SELECT * FROM media WHERE mediaId IN
(SELECT mediaId FROM fav WHERE userId=1)
ORDER BY indx DESC LIMIT 0, 100
より良いスタイル(多分もっとスピーディ、私は測定していない:
SELECT media.* FROM media
JOIN fav USING (mediaId)
WHERE fav.userId=1
ORDER BY media.indx DESC LIMIT 0, 100
これらの両方が、ところで、標準SQLです
あなたは文が参加する必要があります。
SELECT * FROM fav
WHERE fav.userId=1
LEFT JOIN media
ON media.mediaId=fav.mediaID
ORDER BY indx DESC LIMIT 0, 100
あなたが声明に参加するSQLを必要としています。これは標準のT-SQLであり、SQLite特有のものではありません。
あなたはこのような何かしたい:。
SELECT mをmがm.mediaId = f.mediaID WHERE f.userId = 1
あなたが追加することができますON F AS FAVを登録しよう*メディアなどからこの上にあなたの注文の要件。
これは単に標準のT-SQLではない標準SQLであると思いますが、MS SQLとSybaseだけにはT-SQLがあります。他のベンダーはdiffを持っています他のSQL拡張機能。 – tuinstoel