sql >> Database teknologi >  >> RDS >> Sqlserver

Er det bedre at lave en equi join i fra-klausulen eller hvor-klausulen

Generelt gør det ingen semantisk forskel.

Der er dog en kant sag, hvor den kan gøre det. Hvis (forældet) GROUP BY ALL konstruktion tilføjes til forespørgslen som vist nedenfor.

DECLARE @A TABLE(A_ID INT, DURATION DECIMAL(3,2) )
INSERT INTO @A VALUES(1,2.00)

DECLARE @B TABLE(A_ID INT)
INSERT INTO @B VALUES(1)

/*Returns one row*/
SELECT *
FROM @A A
INNER JOIN @B B ON A.A_ID = B.A_ID
WHERE A.DURATION = 3.00
GROUP BY ALL A.A_ID, A.DURATION, B.A_ID

/*Returns zero rows*/    
SELECT *
FROM @A A
INNER JOIN @B B ON A.A_ID = B.A_ID  AND A.DURATION = 3.00
GROUP BY ALL A.A_ID, A.DURATION, B.A_ID


  1. Indsæt/opdater hjælpefunktion ved hjælp af PDO

  2. Sådan løser du tvetydige match, når du kæder genererede Jooq-klasser

  3. .nextval JDBC indsættelsesproblem

  4. Hvad er den hurtigste måde at anvende 150M opdateringer på PostgreSQL-tabellen