我无法在查询中获得正确的结果。我使用MySQL和这里是我到目前为止有:SQL AND在连接表的列上
SELECT cpn, status, title, value_category, rating_category, parts.id
FROM `vendors`
INNER JOIN `vendor_parts` ON (`vendors`.`id` = `vendor_parts`.`vendor_id`)
INNER JOIN `parts` ON (`parts`.`id` = `vendor_parts`.`part_id`)
WHERE (concat(IFNULL(vendors.name,''),IFNULL(vendors.abbreviated_name,''))
LIKE '%vendor1%'
OR
CONCAT(IFNULL(vendors.name,''),IFNULL(vendors.abbreviated_name,''))
LIKE '%vendor2%')
GROUP BY cpn
HAVING COUNT(cpn)=2
ORDER BY cpn
的问题是,在部分表中的某些行,也有厂商表相同的供应商名称的多个行。因此,在结果集中,我将得到具有两个vendor1的零件,而不是vendor1和vendor2。我试图获得至少有vendor1和vendor2之一的零件。
任何想法?
发生时我可能没有张贴我的答案后正确理解要求。您是否想要返回vendor1和vendor2的零件?或者您是否想要返回与%vendor1%匹配的第一个供应商以及与%vendor2%匹配的第一个供应商? – Russ 2010-08-12 15:03:16
它需要两个。 – Audie 2010-08-12 15:44:41