我無法在查詢中獲得正確的結果。我使用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