2011-02-09 3 views
0

Эти таблицы, которые у меня есть (я получил это):SQl Left Регистрация Запрос

table building: b_id(key relation with table build-works b_id):1 2 3 
field1: buildingA, buildingB, 
buildingC 

table build-works: b_id:1 1 2 3 3 3 
w_id: 1 2 1 1 2 3 

table works: w_id(key relation with table build-works w_id): 1 2 3 4 
field1: electricity, sanitary, shell, 
roofing 

Теперь я хочу знать работы за здание? Как я могу сделать это с помощью sql, и вы можете привести мой пример также с zend_db? Благодаря

ответ

0

с помощью левой присоединяется, так как его в названии

SELECT * 
FROM building b 
     LEFT JOIN buildworks bw 
     ON b.b_id = bw.b_od 
     LEFT JOIN works w 
     ON bw.w_id = w.w_id 
+0

мне не нужно рассчитывать что-то. Я просто хочу знать, что работает для строительства? – lander

+0

@lander Проще достаточно просто сбросить счет и группу. –

0

Предполагая, что b_id является первичным ключом для строительства (b_id, w_id) является ключевым для build_works и w_id является ключевым для работы вы можете сделать это следующим образом:

Project_building.field1, работает. field1 (building JOIN build_works JOIN works)

Обратите внимание, что при выполнении JOIN вам нужно переименовать поле1 работ в другое место.

Также обратите внимание, что это может быть не самый эффективный способ сделать это.