|
|
|
| У меня тут возникли сомнения.
Есть таблицы наприме 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
|
| |
|
|
|
|
|
|
|
для: 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
|
| |
|
|
|
|
|
|
|
для: Trianon
(05.05.2006 в 11:11)
| | Абсолютно все заказы должны выводится, а удалённые данные из clients или goods должны заменяться на deleted | |
|
|
|
|
|
|
|
для: Axxil
(05.05.2006 в 11:26)
| | Ответ чуть выше. Или как-то так. :) | |
|
|
|
|
|
|
|
для: Trianon
(05.05.2006 в 11:28)
| | Спасибо. Всё сильно упрощается. Я до этого три запроса делал, а потом объединял результаты с помощью средст пхп.
Век живи - век учись :) | |
|
|
|