sql >> Databasteknik >  >> RDS >> Mysql

Hur använder man mysql JOIN utan ON-villkor?

MySQL dokumentation täcker detta ämne.

Här är en synopsis. När du använder join eller inner join , on skick är valfritt. Detta skiljer sig från ANSI-standarden och skiljer sig från nästan vilken annan databas som helst. Effekten är en cross join . På samma sätt kan du använda en on sats med cross join , som också skiljer sig från standard SQL.

En korskoppling skapar en kartesisk produkt -- det vill säga alla möjliga kombinationer av 1 rad från den första tabellen och 1 rad från den andra. Korskopplingen för en tabell med tre rader ('a', 'b' och 'c') och en tabell med fyra rader (säg 1, 2, 3, 4) skulle ha 12 rader.

I praktiken, om du vill göra en cross join, använd sedan cross join :

from A cross join B

är mycket bättre än:

from A, B

och:

from A join B -- with no on clause

on klausul krävs för en höger eller vänster yttre sammanfogning, så diskussionen är inte relevant för dem.

Om du behöver förstå de olika typerna av kopplingar måste du studera relationsdatabaser. Stackoverflow är inte en lämplig plats för den diskussionsnivån.



  1. Få poster med maxvärde för varje grupp av grupperade SQL-resultat

  2. Uppdatera fråga för att uppdatera rader i MySQL

  3. Ta reda på varför ett e-postmeddelande inte kunde skickas i SQL Server (T-SQL)

  4. Installera webbserver i Windows XP med Apache2, PHP5 och MySQL4 – Del 4