[英]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.