sql >> Databáze >  >> RDS >> Mysql

MySQL Vyberte toto i toto

Existují dvě poměrně přímé možnosti.

S prodejní tabulkou se můžete připojit dvakrát, jednou na položku. Pokud přeskočíte DISTINCT , můžete získat duplicitní hodnoty, pokud obchod prodává více než jedno kladivo nebo teploměr.

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';

...nebo můžete najít všechny zápalky s kladivem nebo teploměrem a spočítat, kolik různých hodnot existuje. Pokud existují dvě možné hodnoty a dostanete obě, jste připraveni.

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;

SQLfiddle pro testování obou .



  1. Převeďte formát data na formát DD/MMM/RRRR na serveru SQL

  2. Počítání nesouvislých hodnot

  3. Vysuňte poslední položku v poli JSON v MySQL 5.7

  4. Použití proměnné env v application.properties Spring Boot