Regroupant les trois tables à l'aide de MySQL
J'ai trois tables nommées
**Student Table**
-------------
id name
-------------
1 ali
2 ahmed
3 john
4 king
**Course Table**
-------------
id name
-------------
1 physic
2 maths
3 computer
4 chemistry
**Bridge**
-------------
sid cid
-------------
1 1
1 2
1 3
1 4
2 1
2 2
3 3
3 4
4 1
4 2
Pour montrer le nom de l'étudiant avec le nom qu'il avait étudié comme,
**Result**
---------------------------
Student Course
---------------------------
ahmed physic
ahmed maths
ahmed computer
ahmed chemistry
ali physic
ali maths
john computer
john chemistry
king physic
king maths
- Je construire une requête suivante
select s.name as Student, c.name as Course from student s, course c join bridge b on c.id = b.cid order by s.name
Mais il ne retourne pas le résultat requis...
Et ce serait pour la forme normalisée, si je veux trouver qui est le gestionnaire sur les autres:
**employee**
-------------------
id name
-------------------
1 ali
2 king
3 mak
4 sam
5 jon
**manage**
--------------
mid eid
--------------
1 2
1 3
3 4
4 5
Et veut obtenir ce résultat:
**result**
--------------------
Manager Staff
--------------------
ali king
ali mak
mak sam
sam jon
- dans le premier résultat vous avez tort ensemble de données pour ahmed et ali
Vous devez vous connecter pour publier un commentaire.
Suffit d'utiliser:
Utiliser la syntaxe ANSI et il sera beaucoup plus clair comment vous joindre les tables:
ANSI
syntaxe, il est bien utile de votre temps pour apprendre. Il vous aidera à éviterJOIN
les erreurs que vous avez faites dans l'avenir.Pour normaliser la forme
m.mid = e1.id
etm.eid = e2.id
?Vous pouvez JOINDRE plusieurs TABLES comme dans cet exemple ci-dessus.
Requête pour joindre plus de deux tables:
Utiliser ceci: