我正在尝试将来自三个不同表格的一些数据合并到一个可用的数组中,但我仍然坚持如何处理它。
首先让我解释一下结构:
我的'主'表snm_content
:
我只想在这里使用id
第二个表'snm_fieldsandfilters_connections':
element_id
在这里很重要,它与下一个表格中的id
具有相同的价值
第三张表'snm_fieldsandfilters_elements':
此处item_id
非常重要,item_id
与'snm_content'中的id
值相同
例如,我添加了另一篇文章(snm_content中的项目)id
4,然后另一行将添加到'snm_fieldsandfilters_connections'中element_id
22,并且还会添加另一行使用id
22和item_id
4来'snm_fieldsandfilters_elements'。
如何从'nm_fieldsandfilters_connections'中获取element_id
以匹配'snm_fieldsandfilters_elements'中的id
?然后将'snm_content'中的id
与来自'snm_fieldsandfilters_elements'的item_id
进行比较。
我希望我解释得很好。
实现这一目标的最佳方法是什么? (我的意思是SQL明智)
感谢答案,我想出了如何做到这一点。
解决方案:
select ct.*, fe.*, cn.*
from snm_content ct
inner join snm_fieldsandfilters_elements fe on fe.item_id = ct.id
inner join snm_fieldsandfilters_connections cn on cn.element_id = fe.id
WHERE ct.catid IN ('10')
答案 0 :(得分:1)
听起来你在询问关于组合来自不同表格的数据。这样做的方法是使用SQL JOIN。如果您不知道如何使用它们,我建议您阅读它们。与此同时,作为一个例子,如果我已正确理解要求,这应该可以解决您的具体问题:
select ct.id
from snm_content ct
inner join snm_fieldsandfilters_elements fe on fe.item_id = ct.id
inner join snm_fieldsandfilters_connections cn on cn.id = fe.element_id