2014-12-23 40 views
6

Jak wybrać ludzi takich jak jabłko i banan zarówno z danych poniżej?wybierz osoby, które lubią jabłko i banan zarówno

tabela: MojaTabela

persons | fruit 
----------------------------- 
    P1  Apple 
    P1  Banana 
    P1  Mango 
    P2  Banana 
    P2  Apple 
    P3  Mango 
    P3  Apple 

tj w tym przypadku, P1, P2 powinna być wynikiem.

Próbowałem z

select * from MyTable where fruit in("Apple","Banana"); 

to również wynikające P3 P3, ponieważ mają także jabłko.

Dzięki za pomoc.

+3

'grupa osób mających count (*) = 2' –

+0

Wynikające z tego P1, Apple – Fahad

+0

To działało dzięki. – Fahad

Odpowiedz

4
SELECT a.persons 
FROM MyTable a JOIN MyTable b on a.persons=b.persons 
WHERE a.fruit='Apple' and b.fruit='Banana' 
1

Spróbuj tego:

SELECT persons 
FROM MyTable 
WHERE fruit IN ('Apple', 'Banana') 
GROUP BY persons 
HAVING COUNT(DISTINCT fruit) = 2; 
+0

Jego wynik P1, Apple @Saharsh – Fahad

0
select * from MyTable where fruit in("Apple") and persons in(select persons from MyTable where fruit in("Banana"); 
1

to będzie działać:

SELECT distinct `t1`.`persons` FROM MyTable AS `t1` 
INNER JOIN MyTable AS `t2` ON `t1`.`persons` = `t2`.`persons` 
WHERE `t1`.`fruit` = 'Banana' AND `t2`.`fruit` = 'Apple' 
-1

Spróbuj tego:

select persons from MyTable where fruit in("Apple","Banana");