是否可以将这些表合并为一个数组值
Is it possible to merge these tables into one array value
我正在尝试将来自三个不同 table 的一些数据合并到一个可用的数组中,但我仍然不知道如何处理这个问题。
先解释一下结构:
我的'main'tablesnm_content
:
我这里只想用id
第二个table'snm_fieldsandfilters_connections':
element_id
在这里很重要,它与下一个table
中的id
具有相同的值
第三个table'snm_fieldsandfilters_elements':
此处item_id
很重要,item_id
与'snm_content'
中的id
的值相同
因此,例如我添加另一篇文章(snm_content 中的项目),其中 id
4,然后将在 'snm_fieldsandfilters_connections' 中添加另一行 element_id
22 'snm_fieldsandfilters_elements' 中还会添加另一行 id
22 和 item_id
4.
如何从'snm_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')
听起来您是在询问有关合并来自不同表的数据的问题。执行此操作的方法是使用 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
我正在尝试将来自三个不同 table 的一些数据合并到一个可用的数组中,但我仍然不知道如何处理这个问题。
先解释一下结构:
我的'main'tablesnm_content
:
我这里只想用id
第二个table'snm_fieldsandfilters_connections':
element_id
在这里很重要,它与下一个table
id
具有相同的值
第三个table'snm_fieldsandfilters_elements':
此处item_id
很重要,item_id
与'snm_content'
id
的值相同
因此,例如我添加另一篇文章(snm_content 中的项目),其中 id
4,然后将在 'snm_fieldsandfilters_connections' 中添加另一行 element_id
22 'snm_fieldsandfilters_elements' 中还会添加另一行 id
22 和 item_id
4.
如何从'snm_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')
听起来您是在询问有关合并来自不同表的数据的问题。执行此操作的方法是使用 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