MYSQL内部连接为多行结果
问题描述:
我的数据库中有两个表:菜单和菜肴。 (我翻译的列和数据库名称,不要打扰,如果没有意义)MYSQL内部连接为多行结果
菜单表
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从菜单表中检索菜单表中的多行。
我做了一个尝试使用此查询,但它只返回一行,我不知道为什么。
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
注意表中的数据都是只为例证, 我想知道为什么这个查询不起作用以及查询的正确性。
答
因为你限制你的输出!
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
我已经删除了限制1在您的查询,其结果限制在第一行的末尾
“如果没有意义不烦” - 确定 – Strawberry
我的意思不注意数据库或列的名称,只关注逻辑,即使它们对你没有意义。 –