понял - посыпаю голову пеплом - тестил на машине с 4.1 а перенес на 3.2
-~{}~ 07.11.07 16:49:
(таблица work - W)
id
opisanie
zId (id заказчика)
...
(таблица users - U)
id
name
...
(таблица manager - M)
wId (id работы)
uId (id юзера)
(таблица ispolnitel - I)
wId (id работы)
uId (id юзера)
(таблица zakazchik - Z)
id
fio
address
.....
вот проблема как выбрать строки!! (их может быть больше одной)
для конкретного заказчика, исполнителя, менеджера ?
(т.е все три критерия важны!)
вот наваял такогоооо! но в результате я вижу в результате лишь ОДНОГО!!! исполнителя № 1 "поле ispolnitel" (хотя для работы их несколько) и
ОДНОГО!!! манагера № 14 "поле manager" (хотя для работы их несколько)
по которым был задан критерий отбора (№1 и №14) соответственно
Код:
SELECT w.*, m.*, i.*,
group_concat(u.id) AS manId , group_concat(u.name) AS manager,
group_concat(ui.id) AS ispId , group_concat(ui.name) AS ispolnitel
FROM work AS w
LEFT JOIN manager AS m ON w.id=m.wid
LEFT JOIN ispolnitel AS i ON w.id=i.wid
LEFT JOIN users AS u ON u.id_fu=m.uid
LEFT JOIN users AS ui ON ui.id_fu=i.uid
WHERE m.uid=14 AND i.uid=1 AND w.zId=1 GROUP BY w.id
где рыть?
-~{}~ 07.11.07 16:53:
точнее - я понимаю почему - "WHERE m.uid=14 AND i.uid=1"
но как тогда построить запрос?
-~{}~ 07.11.07 17:00:
да и вообще такой запрос неверен
отошлите чтоль к хорошей статье про такие запросы
-~{}~ 08.11.07 10:23:
ну и где те господа уверявшие что надо хранить в отдельной таблице списки исполнителей?
Автор оригинала: kruglov
Таблица исполнитель_id <-> работа_id