Maison >base de données >tutoriel mysql >Méthode d'intersection des résultats de requête MySQL
Cet article présentera en détail comment implémenter l'intersection de l'ensemble de résultats renvoyé par SQLrequête dans MySQL Les amis qui en ont besoin peuvent s'y référer.
1
Comment implémenter la requête SQL suivante dans MySQL
(SELECT S.Name
FROM STUDENT S, TRANSCRIPT T
WHERE S.StudId = T.StudId AND T. CrsCode = 'CS305' )
INTERSECT
(SELECT S.Name
FROM STUDENT S, TRANSCRIPT T
OÙ S.StudId = T.StudId AND T.CrsCode = 'CS315')
N'hésitez pas à me donner quelques conseils. Merci d'avance ~
Solution :
Obtenir l'intersection
sélectionner un.* parmi
(
SÉLECTIONNER S.Nom
DE L'ÉTUDIANT S, TRANSCRIPTION T
WHERE S.StudId = T.StudId AND T.CrsCode = 'CS305'
) en tant que
jointure croisée
(
SELECT S.Name
FROM STUDENT S, TRANSCRIPT T
OÙ S.StudId = T.StudId AND T.CrsCode = 'CS315'
) comme b sur a.Name = b.Name;
2
SELECT * FROM (
SÉLECTIONNER col1 DISTINCTE DE t1 OÙ...
UNION TOUS
SÉLECTIONNER col1 DISTINCTE DE t1 OÙ...
) COMME tbl
GROUPE PAR tbl.col1 AYANT COUNT( *) = 2
3.
Intersection :
SELECT * FROM table1 AS a JOIN table2 AS b ON a.name =b.name
Exemple :
Tableau a :
ChampA
001
002
003
Tableau b :
ChampA
001
002
003
004
Veuillez me dire comment obtenir l'ensemble de résultats suivant, c'est-à-dire l'intersection des lignes des tableaux A et B
FieldA
001
002
003
Réponse : sélectionnez a.FieldA à partir d'une jointure interne b sur a.FieldA =b.FieldA
Ensemble de différences :
NOT IN représente l'ensemble de différences
SELECT * FROM table1 WHERE name NOT IN (SELECT name FROM table2 )
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!