繁体   English   中英

MySQL从表中选择取决于其他表值

[英]MySQL select from table depending to other table values

很抱歉打扰您,但我需要专业人士的帮助...

我有两个表:

Table1:
ID, date, menu1, menu2, menu3, menu4

Table2:
ID, name, somethingElse, somethingElse2

在表1中(菜单1,菜单2,菜单3,菜单4)是表2的ID。 我需要的是查询“日期”值到数据库并从Table2中获取四行(取决于Table1的menuX值),请问任何建议?

阅读MySQL文档,并查看关于JOINing的MySQL教程。 在那里,您会找到类似以下内容的内容:

JOIN进行简单的SELECT ,告诉MySQL将ID用作join-colum:

SELECT Table1.`date` FROM Table1 
JOIN Table2 ON Table1.ID = Table2.ID
WHERE Table1.menu1 = "someValue"
AND Table1.menu2 = "someOtherValue"

如果运行缓慢,请尝试在表id-col之一上添加INDEX

ALTER TABLE Table1 ADD INDEX myIndex (ID)

您可以通过声明检查多少行

EXPLAIN SELECT Table1.`date` FROM Table1 ...

好的,现在我明白了您的问题。 感谢您提供的示例,这里的查询可以解决您的问题。 这里的技巧是使用UNION将一个查询结果附加到另一个查询结果下。 这样做四次即可达到目的:

SELECT b.* FROM dailymenu as a JOIN menu as b ON a.menu1 = b.ID WHERE a.`date` = '2014-10-08'
UNION
SELECT b.* FROM dailymenu as a JOIN menu as b ON a.menu2 = b.ID WHERE a.`date` = '2014-10-08'
UNION
SELECT b.* FROM dailymenu as a JOIN menu as b ON a.menu3 = b.ID WHERE a.`date` = '2014-10-08'
UNION
SELECT b.* FROM dailymenu as a JOIN menu as b ON a.menu4 = b.ID WHERE a.`date` = '2014-10-08'

您的菜单听起来很美味:-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM