我正在寻找一种有效的方法来从 MySQL 数据库中的多个表中选择值,基于主表中的“ super ”值。
例如结构可能是这样的:
widgets {id, widgetType, userId, pageId}
widgets_text {parentId, `value`, style}
widgets_images {parentId, src, link}
在上面的示例中,widgets_text 和 widgets_images 中的parentId 是表widgets 中的“Id”
如果我想根据输入的页面 ID (pageId) 选择所有文本和图像小部件,我将如何为此创建查询?
提前致谢。
(另外,我可能会补充一点,如果我想为新图像执行insert语句[例如],我将如何去做?)
编辑: 我现在正在做的事情的例子:
SELECT
*
FROM
widgets w
INNER JOIN widgets_text wt ON wt.parentId = w.id
INNER JOIN widgets_images wi ON wi.parentId = wt.parentId;
^^ 必须为每个子表运行单独的查询。
最佳答案
要加入文本和图像表,您可以使用以下语句,其中 X 是您输入的 pageID
select *
from widgets w
left join widgets_text wt on (wt.parentId = w.id)
left join widgets_images wi on (wi.parentId = w.id)
where w.pageId = X;
我正在使用LEFT JOIN
,因为从您的问题来看,不清楚这些表是否确实包含与小部件行相关的行
关于php - 通过链接表从数据库中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31042869/