sql >> Database teknologi >  >> RDS >> Mysql

MySQL Vælg både dette og det

Der er to ret ligetil muligheder.

Du kan deltage to gange med salgsbordet, én gang pr. Hvis du springer DISTINCT over , kan du få duplikerede værdier, hvis butikken sælger mere end én hammer eller termometer.

SELECT DISTINCT s.shopname
FROM shops s
JOIN sale s1 ON s.shopcode = s1.shopcode AND s1.product='hammer'
JOIN sale s2 ON s.shopcode = s2.shopcode AND s2.product='thermometer';

...eller du kan finde alle tændstikker med hammer eller termometer og tælle hvor mange forskellige værdier der er. Hvis der er to mulige værdier, og du får begge, er du klar.

SELECT s.shopname
FROM shops s
JOIN sale s1 ON s.shopcode = s1.shopcode
WHERE s1.product IN('hammer','thermometer')
GROUP BY s.shopname
HAVING COUNT(DISTINCT s1.product)=2;

En SQLfiddle til at teste begge dele .



  1. Sådan installeres Kubernetes ved hjælp af Kubeadm

  2. Google kortlægger kontinuerlig x-akse fra php-array

  3. Find ud af, hvilken partition en given værdi ville være knyttet til i SQL Server (T-SQL)

  4. SQL-injektion, der kommer omkring mysql_real_escape_string()