我得出的结论是,我第一次快速修复将id数组存储在单个数据库字段(1,5,48)中可能不是最好的方法,但如果我将它们分解为“父项id”(单数)的连接表,然后将链接到单独表的子关联项id (multiple),则会更好。
但是现在我不知道要使用什么mysql查询来获得匹配。
因此,提交了一个搜索表单,其中"related_item“数组为"1,5,8”,而我的"parent_items“之一在连接表中有"1”和"8“的相关项匹配。
那么,什么mysql查询会返回这些匹配呢?
更新:
。
因此,如果有人提交了一份搜索表格,以查找哪里的行业=“银行”或“零售”,我如何返回“topshop”和“hsbc”的公司记录
发布于 2012-04-30 01:15:47
就像这样..。如果你是在寻找孩子或父母,我不清楚你是怎么描述的。我想你是想搜查孩子们所以:
-- SEARCH CHILDREN --
SELECT p.*, c.* FROM child_table c
LEFT JOIN linking_table l ON (p.id = l.child_table_id)
LEFT JOIN parent_table p ON (l.parent_item_id = p.id)
WHERE c.id IN (1,5,4,8)
-- OPTIONAL AND CLAUSE for p.id = ? --如果您打算搜索父母,那么您只需重做订单,尽管您可以使用完全相同的查询,但您的WHERE子句将位于p.id而不是c.id上。
不过,请注意,这将为每个孩子提供1行,因此您将多次拥有相同的父级。如果您不需要实际的子数据,那么可以使用DISTINCT只返回一个实例。
https://stackoverflow.com/questions/10377391
复制相似问题