MySQL中的嵌套选择
设置: 我网站上的每个页面都有四个小部件,它们按不同的顺序排列(1-4)。 我有一个“content”表和一个“widgets”表。我有一个桥接表,它将MySQL中的嵌套选择,mysql,view,Mysql,View,设置: 我网站上的每个页面都有四个小部件,它们按不同的顺序排列(1-4)。 我有一个“content”表和一个“widgets”表。我有一个桥接表,它将内容.id映射到小部件.content\u id 问题: 我要做的是运行一个查询,从内容中选择*以及添加列widget_1、widget_2、widget_3、widget_4,每个列都包含链接到该页面的小部件的id。 我整个上午都在尝试一些嵌套选择,但似乎无法破解。我已经复制了下面涉及的表的MySQL转储:-) 非常感谢 您不需要嵌套查询,只需
内容
.id映射到小部件
.content\u id
问题:
我要做的是运行一个查询,从内容中选择*以及添加列widget_1、widget_2、widget_3、widget_4,每个列都包含链接到该页面的小部件的id。
我整个上午都在尝试一些嵌套选择,但似乎无法破解。我已经复制了下面涉及的表的MySQL转储:-)
非常感谢 您不需要嵌套查询,只需要一个连接。假设您希望从内容记录开始并返回匹配的小部件
SELECT c.*, w.*
FROM content c
LEFT JOIN (
content_widgets cw INNER JOIN widgets w
ON cw.widget_id=w.id
) ON c.id=cw.id
WHERE c.id=....
虽然简单的innter连接更适合您,但您知道您已经拥有了小部件:
SELECT c.*, w.*
FROM content c, content_widgets cw widgets w
WHERE cw.widget_id=w.id
AND c.id=cw.id
AND c.id=....
在表
内容中没有meta\u描述,meta\u关键字,你写全文键title
(title
,content
,meta\u描述,meta\u关键字)什么意思是widget1,widget2等。。你想显示widget的所有列还是包含widget.id
ah的单个列,不要介意元位;我从内容表中去掉了几个字段以保持简洁。我想要一个包含widget.id的列。因此,第3页的widget#1将是从content_id=3和order
=1的content_widget中选择widget_id,widget_2将是从content_id=3和order
=2的content_widget中选择widget_id。
SELECT c.*, w.*
FROM content c, content_widgets cw widgets w
WHERE cw.widget_id=w.id
AND c.id=cw.id
AND c.id=....