是否可以将这些表合并为一个数组值

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