SQL1 :
SELECT
a.*,
b.name
FROM
t_coach a
LEFT JOIN t_school b on a.school_id=b.id
SQL2 :
SELECT a.*, (select b.name FROM t_school b WHERE b.id= a.school_id) AS name FROM t_coach a
SQL1 et SQL2 obtiennent le même résultat.
Le deuxième SQL peut-il être écrit ainsi en développement réel ?
Par rapport à SQL1, SQL2 est-il moins efficace ?
SQL1, la table B n'est analysée qu'une seule fois
SQL2, la table B sera analysée autant de fois qu'il y a d'enregistrements dans la table A
Lorsque la quantité de données dans votre base de données est suffisante, SQL2 ne pourra pas produire de résultats directement, et va tuer la base de données