|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.04.2009, 20:30 | #1 |
Новичок
Джуниор
Регистрация: 05.04.2009
Сообщений: 2
|
Поломал голову над SQL запросом из 5-ти таблиц. Возможно ли это?
Всем привет.
Есть 3 основные таблицы: customers, subscribers, contacts. Также 2 вспомогательные таблицы customers_contacts, subscribers_contacts. Хочу сделать SQL запрос, типа: SELECT `contacts`.*, `customers`.`title`, `subscribers`.`title` FROM `contacts`, `customers`, `subscribers` … Суть запроса — извлечь все контакты для определенного customer'a. У каждого customer'a можеть быть несколько subscriber'ов. Contact можеть быть назначен для customer'a (customers_contacts) или же для subscriber'а (subscribers_contacts). Ответ предполагается такой: `contacts`.`id` `contacts`.`title` `contacts`.`first_name` `contacts`.`last_name` `contacts`.`phones` `contacts`.`emails` `contacts`.`address` `contacts`.`department` `customers`.`title` `subscribers`.`title` (может быть NULL, если contact присвоен customer'у) Целый день пробую, ничего не выходит... Может есть кто поопытней в таких делах? |
06.04.2009, 12:24 | #2 |
Новичок
Джуниор
Регистрация: 05.04.2009
Сообщений: 2
|
Вопрос решился запросом:
SELECT `contacts`.`id` , `contacts`.`first_name` , `contacts`.`last_name` , `contacts`.`phones` , `contacts`.`emails` , `contacts`.`department` , `customers_contacts`. * , `customers`.`title` FROM `contacts` INNER JOIN `customers_contacts` ON `customers_contacts`.`contact_id` = `contacts`.`id` INNER JOIN `customers` ON `customers_contacts`.`customer_id` = `customers`.`id` WHERE ( `customers`.`id` =1 ) UNION SELECT `contacts`.`id` , `contacts`.`first_name` , `contacts`.`last_name` , `contacts`.`phones` , `contacts`.`emails` , `contacts`.`department` , `subscribers_contacts`. * , `subscribers`.`title` FROM `contacts` INNER JOIN `subscribers_contacts` ON `subscribers_contacts`.`contact_id` = `contacts`.`id` INNER JOIN `subscribers` ON `subscribers_contacts`.`subscriber_ id` = `subscribers`.`id` WHERE ( `subscribers`.`customer_id` =1 ) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Blockread с массивом.Возможно ли это? | Ozerich | Общие вопросы Delphi | 4 | 05.11.2008 17:19 |
Это возможно? | Shaitan63 | Общие вопросы Delphi | 24 | 01.05.2008 22:59 |
Над чем поломать голову ? | alexBlack | Свободное общение | 74 | 01.02.2008 18:46 |
Возможно ли это...? | jungo | Microsoft Office Excel | 7 | 20.11.2007 00:01 |