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

Paha218
Дата: 12.02.2013 14:08:10
Добрый день

Такая ситуация:
в MySQL
в таблице по которой будет делаться выборка (main), содержится в том числе и id работника;
в таблице работников (personall) содержится информация с id работника и id его бригады (таблица бригад содержится отдельно - brigads).

Одно из условий выборки, это выбрать работников из таблицы main, которые состоят в определенной бригаде.

Подскажите, пожалуйста, правильно ли написан запрос:

Думаю тут все главное правильно написать WHERE,

SELECT ...
FROM ...
WHERE ... AND personall.id_brigads=7 AND main.id_personall=personall.id AND ...
GROUP BY ...
ORDER BY ...

И как правильно составить данный запрос?

Заранее большое спасибо
romy4
Дата: 12.02.2013 14:10:21
Paha218,

делать join на таблицу `personall`
Paha218
Дата: 13.02.2013 13:40:19
То есть, что-то наподобие такого:


WHERE ... AND personall.id_brigads=7 AND main.id_personall=personall.id AND ...

SELECT tb1.name AS name, main.date AS date, tb2.descr AS descr, main.kol AS kol
FROM main JOIN tb1 JOIN tb2 JOIN personall
ON tb1.id=main.id_gruzi AND tb2.id=main.id_operations AND personall.id_brig=7 AND main.id_personall=personall.id
GROUP BY tb1.name, main.date, main.id_operations
ORDER BY tb1.name, main.date, operations.l, operations.name

?

или FROM main, tb1, tb2 JOIN personall (если так будет работать), или запрос по другому будет лучше?

Правда в этом запросе на вывод мне не нужны данные из таблицы personall, только для условия поиска
Paha218
Дата: 14.02.2013 13:59:38
Кто-нибудь знает, так или нет?

То есть, что-то наподобие такого:

SELECT tb1.name AS name, main.date AS date, tb2.descr AS descr, main.kol AS kol
FROM main JOIN tb1 JOIN tb2 JOIN personall
ON tb1.id=main.id_gruzi AND tb2.id=main.id_operations AND personall.id_brig=7 AND main.id_personall=personall.id
GROUP BY tb1.name, main.date, main.id_operations
ORDER BY tb1.name, main.date, operations.l, operations.name

?

или FROM main, tb1, tb2 JOIN personall (если так будет работать), или запрос по другому будет лучше?

Правда в этом запросе на вывод мне не нужны данные из таблицы personall, только для условия поиска

Заранее большое спасибо
Akina
Дата: 14.02.2013 14:14:09
Paha218
SELECT ...
FROM ...
WHERE ... AND personall.id_brigads=7 AND main.id_personall=personall.id AND ...
GROUP BY ...
ORDER BY ...

а что не устраивает в такой схеме запроса? она полностью соответствует сформулированному заданию.
Paha218
Дата: 14.02.2013 16:09:03
Да нет, все устраивает - на маленьком примере все работает, я просто уточняю будет ли это корректно работать