Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Многотабличный запрос
 
 автор: Axxil   (05.05.2006 в 09:42)   письмо автору
 
 

У меня тут возникли сомнения.
Есть таблицы наприме clients, orders, goods
clients: id_client, name
goods: id_good, name
orders: id_client, id_good

Теперь чтоб получить все заказы с именами клиентов и названиями товаров нужно сделать запрос:

SELECT clients.name, goods.name 
FROM clients t1,goods t2,orders t3
WHERE t1.id_client = t3.id_client
AND t2.id_good = t3.id_good


Если теперь удалить какого-нить клиента из таблицы clients а информацию о его заказах оставить, то запрос не выведет заказы этого клиента.
Вопрос в следующем можно ли как-то составить один запрос чтобы при отсутствии данных об id_client = 3 (например) всёже выводилось что-то типа:

Vasja | Sony
Lena | JVC
Client deleted | Panasonic

   
 
 автор: Trianon   (05.05.2006 в 11:11)   письмо автору
 
   для: Axxil   (05.05.2006 в 09:42)
 

SELECT COALESCE(clients.name,'Client deleted') AS cliname,  goods.name AS goodname
    FROM goods JOIN orders ON goods.id_good = orders.id_good 
               LEFT JOIN clients ON orders.id_client = clients.id_client

   
 
 автор: Axxil   (05.05.2006 в 11:26)   письмо автору
 
   для: Trianon   (05.05.2006 в 11:11)
 

Абсолютно все заказы должны выводится, а удалённые данные из clients или goods должны заменяться на deleted

   
 
 автор: Trianon   (05.05.2006 в 11:28)   письмо автору
 
   для: Axxil   (05.05.2006 в 11:26)
 

Ответ чуть выше. Или как-то так. :)

   
 
 автор: Axxil   (05.05.2006 в 12:36)   письмо автору
 
   для: Trianon   (05.05.2006 в 11:28)
 

Спасибо. Всё сильно упрощается. Я до этого три запроса делал, а потом объединял результаты с помощью средст пхп.
Век живи - век учись :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования