我的数据库上有两个表:菜单和菜单。 (我已翻译了列和数据库名称,如果没有意义,请不要理会)
菜单表
id date_begins date_ends id_dishes_monday id_dishes_tuesday id_wednesday
1 xxxxx xxxxx 1 2 3
菜肴表
id date dynamic_dishes
1 2016/03/02 BLOB
2 2016/03/03 BLOB
3 2016/03/04 BLOB
我想从菜单表中选择id_dishes_monday,id_dishes_tuesday,id_wednesday并从Dishes Table中检索多行。
我尝试使用此QUERY,但它只返回一行,我不知道为什么。
SELECT D.* FROM Menu M INNER JOIN Dishes D WHERE D.id IN (M.id_dishes_monday,M.id_dishes_tuesday,id_dishes_wednesday) ORDER BY M.id DESC LIMIT 1
此查询在此示例中生成的内容:
id date dynamic_dishes
1 2016/03/02 BLOB
我想要的是什么:
id date dynamic_dishes
1 2016/03/02 BLOB
2 2016/03/03 BLOB
3 2016/03/04 BLOB
请注意,表数据仅用于举例说明,我想知道为什么这个查询不能正确查询它。
答案 0 :(得分:2)
因为你限制你的输出!
SELECT D.*
FROM Menu M
INNER JOIN Dishes D
WHERE D.id IN (M.id_dishes_monday,M.id_dishes_tuesday,id_dishes_wednesday)
ORDER BY M.id DESC
我在查询结尾处删除了LIMIT 1,将结果限制为第一行