Maison >base de données >tutoriel mysql >Comment utiliser la jointure complète... sur... dans MySQL
La plupart des développeurs peuvent ne pas comprendre pourquoi mes instructions SQL sont fausses, quelle que soit la façon dont je les écris.
C'est très simple car la jointure complète … sur … ne prend pas en charge la base de données MySQL, uniquement la base de données Oracle.
Sans plus tarder, commençons simplement par l’exemple.
select a.* FROM (select table1.*,table2.* from table1 left JOIN table2 on table1.id=table2 .tid <-- 用左外连接 --> UNION <-- 通过UNION来链接 --> select table1.*,table2.* from table1 right JOIN table2 on table1.id=table2 .tid) as a <-- 用右外连接 --> where a.id = #{id} <-- 如果要根据条件查询,必须要把上面括号里的当做子查询,条件必须写在外面 --> ORDER BY id <-- 其它操作跟在后面 -->
Cela ne semble pas très simple, mais pour les novices, cela peut être un combat pendant longtemps, alors c'est par ici.
(1) Jointure interne
select * from user1 a INNER JOIN user2 b on a.id=b.id
INNER JOIN la jointure interne montre l'intersection entre les deux tables, c'est-à-dire que ce qui est obtenu est la condition de requête (a.id dans ce qui précède sql) =b.id) informations.
(2) Jointure gauche/jointure externe gauche de la connexion JOIN (LEFT JOIN/LEFT OUTER JOIN)
select * from user1 a LEFT JOIN user2 b on a.id=b.id
La jointure gauche interroge toutes les informations de la table de gauche et les informations qui répondent aux conditions de requête (telles qu'un .id ci-dessus) =b.id, c'est-à-dire les informations dans les tableaux de gauche et de droite qui répondent aux conditions de requête associées) en deux parties.
(3) RIGHT JOIN/RIGHT OUTER JOIN de la connexion JOIN
select * from user1 a RIGHTJOIN user2 b on a.id=b.id
La jointure droite interroge toutes les informations de la table de droite sur le côté droit de RIGHT JOIN plus les côtés gauche et droit qui répondent aux conditions de requête associées ( C'est la condition a.id=b.id ci-dessus).
(4) Jointure complète (jointure complète …on…)2cd33325c1ca994873012ef3eb73481c
select * from user1 a FULL JOIN user2 b on a.id=b.id
full La jointure externe est en fait une collection de jointures gauche et droite, ce qui signifie qu'elle interrogera toutes les données de la table de gauche et de la table de droite.
(5) Cross join (cross join...)
select * from user1 a CROSS JOIN user2 b on a.id=b.id
Cross join, également appelé produit cartésien, le nombre de lignes renvoyées par la requête est égal au produit du nombre de lignes dans les deux tables .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!