另一種解決方案(未例如花式作爲Gordon的一個)是利用某種MySQL的交點。
SELECT DISTINCT pc.person
FROM personclothing pc
INNER JOIN personclothing pc2 on pc.person = pc2.person AND pc2.clothing = 'shirt'
INNER JOIN personclothing pc3 on pc.person = pc3.person AND pc3.clothing = 'pants'
INNER JOIN personclothing pc4 on pc.person = pc4.person AND pc4.clothing = 'shoes'
或使用基於評論IN
SELECT pc.person
FROM personclothing
WHERE person IN (SELECT person FROM personclothing WHERE clothing = 'shirt') AND
person IN (SELECT person FROM personclothing WHERE clothing = 'pants') AND
person IN (SELECT person FROM personclothing WHERE clothing = 'shoes')
編輯。如果你需要有shirt
和其中的一個人:pants
或shoes
SELECT pc.person
FROM personclothing
WHERE person IN (SELECT person FROM personclothing WHERE clothing = 'shirt') AND
(
person IN (SELECT person FROM personclothing WHERE clothing = 'pants') OR
person IN (SELECT person FROM personclothing WHERE clothing = 'shoes')
)
謝謝!你知道我可以在這裏爲「OR」做些什麼嗎?例如:這個人有一件襯衫和褲子或鞋子 –
@GabrielVega在第二種解決方案中絕對有可能。查看編輯。 –