Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy w standardowym języku SQL zdefiniowano „Gdzie jest” z wieloma kolumnami?

Standardowy i przenośny SQL byłby ISTNIEJĄ... i jest semantycznie taki sam w IN

SELECT *
FROM requests R
WHERE 
    EXISTS (SELECT *
           FROM node n
           WHERE r.id = n.nid AND r.langid = n.langid
           )

Wielokolumnowego IN nie można przenieść przynajmniej na SQL Server lub Sybase.

Inne uwagi:

  • DOŁĄCZENIE może wymagać DISTINCT i nie jest tym samym, co IN lub EXISTS.
  • Ostateczną opcją jest INTERSECT, która jest rzadziej obsługiwana i działa jak IN/EXISTS
  • IIRC niektóre prehistoryczne wersje MySQL (3.x?) nie wspierały korelacji dla ISTNIEJĄCYCH


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Obrazy w MySQL

  2. Konfigurowanie klastra MySQL InnoDB z powłoką MySQL (plus router MySQL)

  3. Jak dodać datę i znacznik czasu do INSERT przez PHP z mySQL?

  4. MySQL - jak wyświetlić najnowszy temat na wątek

  5. Nie mogę dowiedzieć się, jak uruchomić mysqli_multi_query i wykorzystać wyniki z ostatniego zapytania