мы можем получить данные из пяти таблиц, имеющих общий идентификатор с одним запросом? - PullRequest
2 голосов
/ 28 апреля 2009

я хочу получить данные из пяти таблиц, имеющих общий идентификатор из одного запроса, можем ли мы сделать это,

например, tbl_student, tbl_batch, tbl_section, tbl_level, tbl_faculty все имеют общий идентификатор College_id

как мне получить все значения таблиц одним запросом

если кто-нибудь может мне помочь, я был бы очень рад

Ответы [ 3 ]

6 голосов
/ 28 апреля 2009

Если я правильно вас понимаю, это звучит как присоединение .

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

Скорее всего, это не совсем тот способ, которым вы хотите получать данные, потому что модель данных не имеет большого смысла. Надеюсь, вы поняли идею.

0 голосов
/ 28 апреля 2009

Вы можете сделать это, но это не будет иметь большого смысла.

Ваш запрос SQL возвращает двумерную таблицу с одинаковыми столбцами для каждой строки. Если некоторые из ваших рядов являются студентами, а некоторые из них являются факультетами, то будет несколько столбцов, которые имеют смысл для студентов, но не имеют смысла для факультетов, а для рядов факультетов эти столбцы должны быть нулевыми.

SQL для этого для двух таблиц:

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

Тогда ваши результаты будут выглядеть так:

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

Это не имеет особого смысла для меня.

0 голосов
/ 28 апреля 2009
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...