Duplicata possible :
INNER JOIN versus clause WHERE - une différence ?
Quelle est la différence entre une requête INNER JOIN et une requête de jointure implicite (énumérant plusieurs tables après le mot-clé FROM) ? Par exemple :
Étant donné les deux tableaux suivants :
CREATE TABLE Statuses(
id INT PRIMARY KEY,
description VARCHAR(50)
);
INSERT INTO Statuses VALUES (1, 'status');
CREATE TABLE Documents(
id INT PRIMARY KEY,
statusId INT REFERENCES Statuses(id)
);
INSERT INTO Documents VALUES (9, 1);
Quelle est la différence entre ces deux requêtes SQL ? D'après les tests que j'ai effectués, elles renvoient le même résultat. Font-elles la même chose ? Y a-t-il des situations où elles renvoient des ensembles de résultats différents ?
SELECT s.description FROM Documents d, Statuses s WHERE d.statusId = s.id AND d.id = 9;
SELECT s.description FROM Documents d INNER JOIN Statuses s ON d.statusId = s.id WHERE d.id = 9;