Skip to main content

Depuis l'emploi, la base de données a été utilisée et la base de données utilisée est une structure de table relativement simple SQLite et je traiterai également de la tablette de niveau SQL de l'Église. Je dois faire des problèmes de données dans SQL Server en arrière-plan, un peu étiré, en particulier rejoindre , parfois stupide n'est pas clair, ils peuvent donc comprendre et mettre en place un enregistrement.


Premièrement, le premier mot

Lorsque vous parlez de la différence entre de nombreux participants différents dans SQL dans différentes questions et réponses, c'était la référence la plus large. C'est une copie de l'article des performances visuelles de CodeProject

de SQL participant il parle simple et claire, en utilisant la littérature pour aider à comprendre, l'effet est clair. Cet article sera utilisé avec ses explications, il est légèrement expliqué, qui peut être considéré comme une traduction chinoise relativement rugueuse.

Deux Base de données de table Table_a et Table_b SÊtre utilisé pour implémenter un exemple d'explication et de structure et de données comme suit:

Les enregistrements PK sont 1 dans

Table_a mysql> SELECT * FROM Table_A ORDER BY PK ASC;+----+---------+| PK | Value |+----+---------+| 1 | both ab || 2 | only a |+----+---------+2 rows in set (0.00 sec)mysql> SELECT * from Table_B ORDER BY PK ASC;+----+---------+| PK | Value |+----+---------+| 1 | both ab || 3 | only b |+----+---------+2 rows in set (0.00 sec) et
Table_b 2 est Table_a Un unique 3 est Table_B seulement. Mardi, la participation est souvent utilisée

Particiaire à l'intérieur est souvent traduite dans . Demandes de connexion internes

Retours
Après le panneau de gauche (tableau A) et les connexions de données peuvent être liés à droite (tableau B).
EXEMPLE QUERY:



SELECT A.PK AS A_PK, B.PK AS B_PK, A.Value AS A_Value, B.Value AS B_ValueFROM Table_A AINNER JOIN Table_B BON A.PK = B.PK;


+------+------+---------+---------+| A_PK | B_PK | A_Value | B_Value |+------+------+---------+---------+| 1 | 1 | both ab | both ab |+------+------+---------+---------+1 row in set (0.00 sec)





SELECT A.PK AS A_PK, B.PK AS B_PK, A.Value AS A_Value, B.Value AS B_ValueFROM Table_A ALEFT JOIN Table_B BON A.PK = B.PK;

.

+------+------+---------+---------+| A_PK | B_PK | A_Value | B_Value |+------+------+---------+---------+| 1 | 1 | both ab | both ba || 2 | NULL | only a | NULL |+------+------+---------+---------+2 rows in set (0.00 sec)



]

Remarque:

où A est l'alias de table_a, B est l'alias de table_b, similaire. SELECT A.PK AS A_PK, B.PK AS B_PK, A.Value AS A_Value, B.Value AS B_ValueFROM Table_A ARIGHT JOIN Table_B BON A.PK = B.PK;

2, la participation restante

+------+------+---------+---------+| A_PK | B_PK | A_Value | B_Value |+------+------+---------+---------+| 1 | 1 | both ab | both ba || NULL | 3 | NULL | only b |+------+------+---------+---------+2 rows in set (0.00 sec)
Les réglages sont généralement traduits comme la connexion gauche et elle a également écrit à gauche de la participation. Requête à gauche Retourne tous les enregistrements de la table de gauche (tableauA), quelles que soient les données associées au panneau de droite (tableau B). La colonne de données pertinente trouvée dans la table de droite sera également renvoyée ensemble.

Exemple requête:

Résultats de la requête:

]

3, Droit de participer

SELECT A.PK AS A_PK, B.PK AS B_PK, A.Value AS A_Value, B.Value AS B_ValueFROM Table_A AFULL OUTER JOIN Table_B BON A.PK = B.PK; L'assemblage est généralement traduit par le droit de se connecter
, et également écrit en tant que partie participant à la droite. La requête de connexion droite

renvoie tous les enregistrements dans le panneau de droite (tableau B), que les données soient liées dans le panneau de gauche (tableau A) ou non. Les colonnes de données correspondantes trouvées dans le panneau de gauche seront également renvoyées ensemble.

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FULL OUTER JOIN Table_B BON A.PK = B.PK' at line 4
Exemple de requête:

mysql> SELECT * -> FROM Table_A -> LEFT JOIN Table_B -> ON Table_A.PK = Table_B.PK -> UNION ALL -> SELECT * -> FROM Table_A -> RIGHT JOIN Table_B -> ON Table_A.PK = Table_B.PK -> WHERE Table_A.PK IS NULL;+------+---------+------+---------+| PK | Value | PK | Value |+------+---------+------+---------+| 1 | both ab | 1 | both ba || 2 | only a | NULL | NULL || NULL | NULL | 3 | only b |+------+---------+------+---------+3 rows in set (0.00 sec)









.

SELECT A.PK AS A_PK, B.PK AS B_PK, A.Value AS A_Value, B.Value AS B_ValueFROM Table_A ALEFT JOIN Table_B BON A.PK = B.PKWHERE B.PK IS NULL;

+------+------+---------+---------+| A_PK | B_PK | A_Value | B_Value |+------+------+---------+---------+| 2 | NULL | only a | NULL |+------+------+---------+---------+1 row in set (0.01 sec)



]
43]

4, participer à l'ensemble

SELECT A.PK AS A_PK, B.PK AS B_PK, A.Value AS A_Value, B.Value AS B_ValueFROM Table_A ARIGHT JOIN Table_B BON A.PK = B.PKWHERE A.PK IS NULL;

Joindre un foutre complet est généralement traduit comme externe Connexion, connexion complète

et la déclaration de requête réelle peuvent être enregistrées dans la sectionGénéral à l'extérieur ou pleinement participé. La requête de connexion externe

peut renvoyer tous les enregistrements dans les tables gauche et droite, où les journaux peuvent être liés dans le panneau gauche et droit à renvoyer.

+------+------+---------+---------+| A_PK | B_PK | A_Value | B_Value |+------+------+---------+---------+| NULL | 3 | NULL | only b |+------+------+---------+---------+1 row in set (0.00 sec)


Exemple requête:




SELECT A.PK AS A_PK, B.PK AS B_PK, A.Value AS A_Value, B.Value AS B_ValueFROM Table_A AFULL OUTER JOIN Table_B BON A.PK = B.PKWHERE A.PK IS NULLOR B.PK IS NULL;


ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FULL OUTER JOIN Table_B BON A.PK = B.PKWHERE A.PK IS NULLOR B.PK IS NULL' at line 4


mysql> SELECT * -> FROM Table_A -> LEFT JOIN Table_B -> ON Table_A.PK = Table_B.PK -> WHERE Table_B.PK IS NULL -> UNION ALL -> SELECT * -> FROM Table_A -> RIGHT JOIN Table_B -> ON Table_A.PK = Table_B.PK -> WHERE Table_A.PK IS NULL;+------+--------+------+--------+| PK | Value | PK | Value |+------+--------+------+--------+| 2 | only a | NULL | NULL || NULL | NULL | 3 | only b |+------+--------+------+--------+2 rows in set (0.00 sec)




.


Remarque: Mon exemple actuel utilisé MySQL ne prend pas en charge la participation. Le résultat doit être renvoyé (à l'aide de la simulation de l'Union): Résumé: Quatre ci-dessus est de type et le concept de communication commune Participation à SQL, Regardant leurs photos: Qu'est-ce que cela se sente moins? Ne restez pas plus que ces cas lors de l'apprentissage de mathématiques? Alors continuez à voir. 43] 1, restant participant à une table interne sur la table gauche, mais La bonne table n'a pas de dossier connexe. Í Query: [ Résultats de la requête: 2, les participants droits n'incluent pas la partie interne Retourne l'ensemble d'enregistrements du tableau à droite, mais le panneau de gauche n'est pas lié. Exemple de requête: . 3, Type de jointure externe complet intérieur renvoie un contact ONU à gauche sur le panneau de gauche et le panneau droit. pour l'utilisation complète de la participation extérieure, MySQL est mise à jour lorsque la requête est exécutée . Le résultat doit être renvoyé (avec la simulation syndicale): 5, Résumé Sept utilisations utiles peuvent essentiellement couvrir différentes requêtes participantes. 7 Types d'utilisation, premier: Regardez-les, je semble queEst revenu à l'ère mathématique dans le passé ... Prendre une photo de CL Moffatt avec la déclaration SQL , avec le goût, meilleur goût: ] Six, ajouté: Ajouter à la jointure Il y a plus de participation, tels que Cross Participate, vous pouvez faire référence à SQL participer à la présentation de la diapositive. 1, croix rejoindre renvoie l'ensemble dikal de la table à gauche et le panneau droit. Exemple de requête: Certaines requêtes participantes, les résultats peuvent être utilisés pour Simulez-le avec une croix à droite , telle que de rejoindre l'intérieur correspondant à une jonction croisée.. Dans lequel A.PK = B.PK. 2, participer renvoie la table avec les exigences suivantes couramment utilisées dans la table avec le cas que la clé primaire est utilisée comme étrangère. clé. CLa structure et les données de la table_c sont les suivantes: Le champ EMP_ID représente l'ID d'employé EMP_NAME Le nom de l'école EMP_SUPV_ID indique l'ID de superviseur Exemple: Nous voulons maintenant interroger tous les employés avec des superviseurs avec des superviseurs avec des superviseurs et leurs identifiants et noms respectifs, vous pouvez utiliser rejoindre . Description supplémentaire: Les cartes sont mappées dans Keynote pour dessiner personnelles L'expérience est la participation de SQL Mathematics and et très similaire à SQLite Inscrivez-vous maintenant et rejoignez le Witter complet, peut être utilisé à utiliser pour obtenir des effets similaires à l'aide de la participation et de l'Union MySQL ne prend pas en charge la participation à l'ensemble , vous pouvez utiliser le droit et l'union pour obtenir le même effet.

Sujets

Catégories