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

MYSQL И заявка, която да задоволи в същата колона

Тъй като stop_id не могат да бъдат две различни стойности в един и същи ред.

Агрегацията е един от начините да направите това, което искате:

SELECT b.bus_name
FROM buses b JOIN
     route_connect rc
     ON rc.busid = b.id JOIN
     stops s
     ON s.id = rc.stop_id
GROUP BY b.bus_name
HAVING SUM( s.stop_name = 'Sydney' ) > 0 AND
       SUM( s.stop_name = 'Melbourne' ) > 0;

Това връща автобуси, които имат спирки с името на двата града.

Като се има предвид, че автобусите могат да имат много спирки, може да е по-ефективно да направите:

SELECT b.bus_name
FROM buses b JOIN
     route_connect rc
     ON rc.busid = b.id JOIN
     stops s
     ON s.id = rc.stop_id
WHERE s.stop_name in ('Sydney', 'Melbourne')
GROUP BY b.bus_name
HAVING COUNT(DISTINCT s.stop_name) = 2;


  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 бавен журнал на заявки на моя сървър?

  2. Как да се свържете с MySQL с помощта на Microsoft .NET

  3. MySql автоматично нарастващ буквено-цифров първичен ключ?

  4. Как да изчислим процента на колоната в MySQL

  5. Как да защитите MySQL/MariaDB сървъри