我正在PHP和MySQL中构建一个社交媒体新闻聚合web应用程序。它需要将各种URL(列url)映射到特定的趋势(列trend_id)。这是我的虚拟数据结构:将多个查询的行合并成一个
我需要建立一个查询,以特定trend_id(例如12)获取URL。这是简单的:
选择
url
FROMurl_table
WHEREtrend_id
= '12'
现在,一些趋势都与特定父趋势。例如trend_ids 12,16和45都与父trend_id 12.因此,这里是我的查询:
SELECT '12'
parent_trend_id
,url
FROMurl_table
WHERE(trend_id
= '12' ORtrend_id
= '16' ORtrend_id
= '45')
这里的类似查询的另一个示例:
SELECT '345' 作为
parent_trend_id
,url
FROMurl_table
WHERE(trend_id
= '345' ORtrend_id
= '457' ORtrend_id
= '16')
的问题是,有多个这样的父 - 趋势之间的亲子关系。截至目前,我在PHP中运行for循环并执行多个查询。此外,鉴于我的应用程序的性质,父级趋势不能成为此表的一部分。有没有一种方法可以让单个查询关联多个这样的查询?
编辑:
我有一个单独的表定义
孩子
关系。这是一个带有ID,trend_id(父级)和related_trend_id(子级)的简单3列表。然而,一个related_trend_id(子)可以有多个trend_id(父母)。这里的关系表的快照:
我已更新我的查询以使用此表...应该正常工作。 – Hogan 2012-07-27 20:29:52