Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL中的嵌套选择_Mysql_View - Fatal编程技术网

MySQL中的嵌套选择

MySQL中的嵌套选择,mysql,view,Mysql,View,设置: 我网站上的每个页面都有四个小部件,它们按不同的顺序排列(1-4)。 我有一个“content”表和一个“widgets”表。我有一个桥接表,它将内容.id映射到小部件.content\u id 问题: 我要做的是运行一个查询,从内容中选择*以及添加列widget_1、widget_2、widget_3、widget_4,每个列都包含链接到该页面的小部件的id。 我整个上午都在尝试一些嵌套选择,但似乎无法破解。我已经复制了下面涉及的表的MySQL转储:-) 非常感谢 您不需要嵌套查询,只需

设置

我网站上的每个页面都有四个小部件,它们按不同的顺序排列(1-4)。 我有一个“content”表和一个“widgets”表。我有一个桥接表,它将
内容
.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=....