Maison >base de données >tutoriel mysql >Comment utiliser la jointure interne et la jointure gauche dans MySQL
Les retours sont différents
1. La jointure interne renvoie uniquement les lignes avec des champs de jointure égaux dans les deux tables
2. Le nombre de jointures gauches est inférieur ou égal au nombre d'enregistrements dans les tables de gauche et de droite.
Numéros différents
1. La jointure interne renvoie tous les enregistrements de la table de gauche et les enregistrements égaux au champ de jointure de la table de droite.
2. Le nombre de jointures gauches est le même que le nombre d'enregistrements dans le tableau de gauche.
Les attributs d'enregistrement sont différents
1 Les attributs d'enregistrement insuffisants pour la jointure interne seront directement supprimés.
select channel.* from channel left join modules on channel.id = modules.channel_id where page_id=1 group by channel.id order by channel.new_sort asc , channel.id desc1. page_id fait-il référence ? Sous le type de page, il est défini dans la table des canaux pour distinguer le type de page 2. Un ID de canal peut avoir plusieurs modules à associer, il doit donc être regroupé en fonction de l'ID de canal. 3. new_sort peut. définir l'affichage de tri des chaînes. De plus, le tri doit afficher en premier la chaîne créée en premier.
Dans les cas suivants, les chaînes nouvellement créées ne seront pas affichées, et les chaînes sans modules ne seront pas non plus affichées.
select channel.* from channel inner join modules on channel.id=modules.channel_id where page_id=1 group by channel.id order by channel.new_sort asc , channel.id descEnfin : j'ai quelques doutes. La chaîne n'affiche que les informations liées à la chaîne et n'utilise pas les informations du module associé, j'estime donc que cela peut répondre aux besoins. Je mettrai à jour si je rencontre des problèmes plus tard
select channel.* from channel where page_id=1 order by channel.new_sort asc , channel.id descEuh~ Pour ajouter à la question, le problème restant ci-dessus est que l'ID du module doit être interrogé sur la page, il est donc lié. J'ai déjà rencontré un scénario de jointure interne, et je l'ajouterai plus tard~scénario de jointure interneAjoutez une nouvelle table de stratégie Policy_lib, puis créez une table intermédiaire Channel_policy pour enregistrer l'association entre le canal Channel et Policy_lib table politique.
select policy_lib.id,channel_policy.policy_id,channel_policy.channel_id,channel.id from policy_lib inner join channel_policy on channel_policy.policy_id=policy_lib.id inner join channel on channel.id=channel_policy.channel_id
En utilisant la jointure interne, évidemment la requête de résultat ne sera pas vide. Si vous utilisez la jointure gauche, au cas où il y aurait des données sales dans la table, il y aurait des données à gauche et à droite. est l'espace-temps, vous devez vous demander si c'est pendant le traitement que la disponibilité est clairement déraisonnable.
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!