我想用C#在SQLite中做
SELECT * FROM media WHERE mediaId= for each
SELECT mediaId FROM fav WHERE userId=1 ORDER BY indx DESC LIMIT 0, 100
语法显然是不正确的。我不知道如何在另一个选择语句中使用参数。
最佳答案
您的无效语法的最直接翻译:
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,顺便说一句,尤其是第二种形式在几乎任何关系数据库实现上都可以很好地工作。
关于c# - sqlite如何使用其他选择的结果进行选择?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/931291/