Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL Изберете и това, и това

Има две доста прави опции.

Можете да се присъедините два пъти към таблицата за разпродажба, веднъж на артикул. Ако пропуснете DISTINCT , може да получите дублиращи се стойности, ако магазинът продава повече от един чук или термометър.

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

...или можете да намерите всички съвпадения с чук или термометър и да преброите колко различни стойности има. Ако има две възможни стойности и получавате и двете, сте готови.

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 за тестване и на двете .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проблем при създаването на MySQL заявка в Symfony, съдържаща JOIN и RAND()

  2. SQL заявка за преброяване на броя пъти, когато определени стойности се появяват в множество редове

  3. Дублирана колона при присъединяване

  4. Как да накарам PHP и MySQL да работят на IIS 7.0?

  5. MySql предоставя разрешения за всички бази данни, започващи с <string>