2009-05-31 7 views

答えて

5

あなたの無効な構文のほとんどは直接翻訳:

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です

2

あなたは文が参加する必要があります。

SELECT * FROM fav 
WHERE fav.userId=1 
LEFT JOIN media 
ON media.mediaId=fav.mediaID 
ORDER BY indx DESC LIMIT 0, 100 
-1

あなたが声明に参加するSQLを必要としています。これは標準のT-SQLであり、SQLite特有のものではありません。

あなたはこのような何かしたい:。

SELECT mをmがm.mediaId = f.mediaID WHERE f.userId = 1

あなたが追加することができます

ON F AS FAVを登録しよう*メディアなどからこの上にあなたの注文の要件。

+0

これは単に標準のT-SQLではない標準SQLであると思いますが、MS SQLとSybaseだけにはT-SQLがあります。他のベンダーはdiffを持っています他のSQL拡張機能。 – tuinstoel

関連する問題