Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Создание связей


Автор: Timoha 1.7.2006, 10:08
Уважаемые программисты! Подскажите пожалуйста, как можно в MySQL связать три таблицы по какому-нибудь ID. Допустим,что у меня три таблицы.Первая содержит паспортные данные,вторая-персональные данные, а третья дополнительная информация.
Мне нужно чтобы когда я сделал запрос по фамилии,или по другому какому-нибудь полю, у меня вывелись данные относящиеся именно к этой записи,т.е. фамилия,имя,отчество, паспортные данные,все относилось к одному человеку.
Как это сделать в Access я знаю,там есть связи, а вот как мне их организовать в MySql?  

Автор: DeadSoul 1.7.2006, 10:12
Код

SELECT * FROM Table1 
INNER JOIN Table2 ON Table1.Value1=Table2.Value2
 

Автор: igorold 3.7.2006, 06:59
Если поиск по первой таблице, то:
Код

SELECT * FROM Table1 LEFT JOIN Table2 ON Table1.ID=Table2.ID LEFT JOIN Table3 ON Table1.ID=Table3.ID WHERE Table1.NumPass='Номер паспорта';

... исправляешь условие после WHERE ....
если поиск поTable2, просто меняешь соответственно запрос и сам скрипт:
Код

SELECT * FROM Table2 LEFT JOIN Table1 ON Table2.ID=Table1.ID ...................

и т.д. 

Автор: DeadSoul 3.7.2006, 20:14
igorold, не обязательно LEFT JOIN. Может быть INNER JOIN, м.б. RIGHT JOIN, м.б. FULL JOIN 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)