Как отобразить содержимое строки из БД на странице php?

svarkk

Новичок
Слово специалист специально с точкой.
Здравствуйте, я новичок в программировании, столкнулся с проблемой.
У меня есть 4 таблицы (обведены) в двух крайних (FIO и speciality) содержатся просто строки с текстом. К ним обращается третья таблица (speci.alist) внешними ключами к строкам family и name_spec.
Вывожу я всё это на страницу php, чтобы вместо id отображалось содержимое этих строк (family и name_spec), т.е. фамилия и профессия, я использую данный sql-запрос:

SQL:
SELECT

FIO.family AS 'Id_FIO',
speciality.name_spec AS 'id_profession'

FROM speci.alist
LEFT JOIN FIO ON (FIO.id = speci.alist.Id_FIO)
LEFT JOIN speciality ON (speciality.id = speci.alist.Id_profession)
И всё хорошо. Но, мне сейчас нужно вывести строку с id из 3 таблицы (speci.alist), в 4 таблицу (uchastok). Т.е. нужно достать фамилию специалиста, которая в свою очередь берётся из таблицы 1(FIO).
И вопрос заключается в следующем, как мне сделать отображение содержимого строки из таблицы 1 (FIO), в таблице 4 (uchastok) , но с id из таблицы 3 (speci.alist)?
Т.е. чтобы не было ситуации, когда у меня есть выбор фамилии человека, когда он отсутствует в таблице 3 (speci.alist).
 

Вложения

Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
Т.е. чтобы не было ситуации, когда у меня есть выбор фамилии человека, когда он отсутствует в таблице 3 (speci.alist).
задачу конечно на китайском описал, но если правильно понял - то используй не "LEFT JOIN", а просто "JOIN"
 

svarkk

Новичок
задачу конечно на китайском описал, но если правильно понял - то используй не "LEFT JOIN", а просто "JOIN"
В моей голове только 2 варианта:
Вариант 1, выводит ошибку: "Повторяющаяся таблица/псевдоним 'FIO'":

SQL:
SELECT

FIO.family AS 'id_specialist',
nomer_uchastok.nomer_uchastok AS 'id_nom_uchastok'

FROM uchastok
JOIN FIO ON (FIO.id = specialist.id_FIO)
JOIN specialist ON (specialist.id_FIO = uchastok.id_specialist)
JOIN nomer_uchastok ON (nomer_uchastok.user_id = uchastok.id_nom_uchastok)
Вариант 2, выводит пустые колонки:

SQL:
SELECT

FIO.family AS 'id_specialist',
nomer_uchastok.nomer_uchastok AS 'id_nom_uchastok'

FROM uchastok
JOIN FIO ON (FIO.id = uchastok.id_specialist)
JOIN nomer_uchastok ON (nomer_uchastok.user_id = uchastok.id_nom_uchastok)
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
ты прочти про JOIN или INNER JOIN что одно и тоже, и пользуйся. в одном случае может LEFT правильно в другом RIGHT в третьем INNER
 

svarkk

Новичок
Помог вот такой запрос:


SQL:
SELECT

nomer_uchastok.nomer_uchastok AS 'id_nom_uchastok',
FIO.*

FROM uchastok
LEFT JOIN nomer_uchastok ON uchastok.id_nom_uchastok = nomer_uchastok.user_id
LEFT JOIN specialist ON uchastok.id_specialist = specialist.id
LEFT JOIN FIO ON specialist.id_fio = FIO.id
 
Сверху