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 



注意表中的数据都是只为例证, 我想知道为什么这个查询不起作用以及查询的正确性。

+0

“如果没有意义不烦” - 确定 – Strawberry

+0

我的意思不注意数据库或列的名称,只关注逻辑,即使它们对你没有意义。 –

因为你限制你的输出!

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在您的查询,其结果限制在第一行的末尾

+0

就是这样。我认为限制器是用于Menu表格的,并没有注意到这一点。谢谢 –

+0

没问题.. :) – Yossi

+0

你的回答太快了,我必须等待将答案标记为已接受。但我会 :) 。 –