2009-04-28 3 views

Répondre

6

Si je vous comprends bien que les sons comme un join.

select * from tbl_student st 
join tbl_batch ba on ba.college_id=st.college_id 
join tbl_section se on se.college_id=st.college_id 
join tbl_level le on le.college_id=st.college_id 
join tbl_faculty fa on fa.college_id=st.college_id 

Ce n'est probablement pas exactement la manière dont vous voulez obtenir les données car le modèle de données n'aurait pas beaucoup de sens. J'espère que vous avez l'idée cependant.

+2

Avant de faire cela, vous voulez penser aux cardinalités, cependant. Si ce n'est pas 1: 1: 1, vous vous retrouverez avec plus d'une ligne par identifiant (ou ID manquants). – Thilo

+0

En particulier, il semble que vous obteniez toutes les «sections» et toutes les «facultés» dans tout le collège pour chaque «étudiant» de ce collège, ce qui n'est probablement pas ce que vous voulez. – Thilo

+1

vous pouvez utiliser les jointures GAUCHE ou OUTER si vous voulez tenir compte des instances où toutes les tables n'ont pas de données pour l'étudiant ... – Damovisa

0
SELECT fields FROM table1 
    LEFT JOIN table2 ON table1.id = table2.id 
    LEFT JOIN table3 ON table1.id = table3.id 
    LEFT JOIN table4 ON table1.id = table4.id 
0

Vous pouvez le faire, mais cela n'aura pas beaucoup de sens.

Votre requête SQL renvoie une table à deux dimensions avec les mêmes colonnes pour chaque ligne. Si certaines de vos rangées sont des étudiants et que certaines d'entre elles sont des facultés, alors il y aura un tas de colonnes qui ont du sens pour les étudiants, mais qui n'ont aucun sens pour les facultés.

Le SQL pour le faire pour deux tables est:

SELECT t_F.college_id AS college_id, t_F.f_1, t_F.f_2, NULL , NULL 
    FROM tbl_Faculty AS t_F 
UNION 
SELECT t_S.college_id AS college_id, NULL , NULL , t_S.s_1, t_S.s_2 
    FROM tbl_Student AS t_S 
ORDER BY college_id 

Alors vos résultats ressemblera:

 
college| Faculty field 1 | 2 | Student field 1 | 2 
-------------------------------------------------------------- 
1  | abc    | def | NULL   | NULL 
1  | abc    | ghi | NULL   | NULL 
1  | NULL   | NULL| asdoifjas  | aosdifjasdf 
1  | NULL   | NULL| asdoifjas  | aosdifjasdf 
2  | abc321   | aaa | NULL   | NULL 
2  | abc456   | bbb | NULL   | NULL 
2  | NULL   | NULL| afasdfafs  | aosdifjasdf 
2  | NULL   | NULL| asdoifjas  | aoffavsdfff 

Cela ne fait pas beaucoup de sens pour moi.

Questions connexes