我累了,我无法绕过这个。我有两张桌子:
table menu
@id = id, @nr = id of parent
|======|======|
| id | nr |
|======|======|
| 10 | 9 |
| 11 | 10 |
| 12 | 10 |
| 13 | 10 |
|======|======|
table content
@id = id, @mf = menu - first in tree, @mi = menu item linked to content
|======|======|======|
| id | mf | mi |
|======|======|======|
| 85 | 9 | 11 |
| 89 | 9 | 12 |
| 95 | 9 | 13 |
|======|======|======|
现在,我需要从content
中选择所有行,其中(mi
= menu
。id
),但我需要选择menu
。来自id
的{{1}}首先从menu
选择*
menu
nr
= 10(或任何数字,我用PHP放入我的sql)
我真的无法绕过所有那些UNIONS,LEFT JOINS,HAVING和东西......
谢谢
编辑: 谢谢大家,惭愧我只能选择一件好事:)
答案 0 :(得分:7)
SELECT C.* FROM content C
INNER JOIN menu ON C.mi = menu.id AND menu.nr = 10;
<强>更新强>
在回复您的评论时,您可能会发现W3 Schools section on SQL JOINS是一个有用的资源,可以开始使用。
答案 1 :(得分:2)
这是你要求的吗?以下内容将返回mi在menu.id和nr = 10中的内容中的所有行。
select *
from content
where mi in (select id from menu where nr=10)
答案 2 :(得分:0)
SELECT * FROM content WHERE mi IN(SELECT id FROM menu WHERE nr = 10)
答案 3 :(得分:0)
未测试
选择内容。* FROM内容,菜单WHERE menu.nr = 10 AND content.mi = menu.id
或
SELECT c。*,menu.nr FROM menu LEFT JOIN content AS c ON menu.id = c.mi WHERE menu.nr = 10