SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 18.01.2011 21:08:57

Kornelius
Участник
Зарегистрирован: 18.01.2011
Сообщений: 2

Помогите пожалуйста со сложным запросом

Есть две таблицы:
таблица c_st - товары (содержит поля id-номер товара и name-наименование)
| id | name |
| 1  |товар1|
| 2  |товар2|
| 3  |товар3|

таблица c_sorder - количество определенных товаров в каждом заказе
(id-номер по порядку, zid-номер заказа, sid-номер товара(совпадает с id из предыдущей таблицы), kol-количество заказанного товара.)
| id | zid | sid | kol |
| 1  |   1 |  3  |  2  |
| 2  |   2 |  1  |  1  |
| 3  |   3 |  1  |  3  |
| 4  |   3 |  2  |  1  |

Нужен запрос который покажет в итоге наименование всех товаров и их количество в определенном заказе.

Результат должен выглядеть так -
| c_st.id | c_st.name | c_sorder.kol | c_sorder.zid |
|     1     |   товар1   |         3       |         3        |
|     2     |   товар2   |         1       |         3        |
|     3     |   товар3   |      NULL     |       NULL      |

Запрос вида
SELECT
c_st.id,
c_st.name,
c_sorder.kol,
c_sorder.zid
FROM c_st
LEFT JOIN c_sorder ON c_sorder.sid=c_st.id
WHERE c_sorder.zid = 3
ORDER BY c_st.id

Выдает только те товары которые есть в таблице c_sorder, то есть не показывает те товары которые не заказаны (из за WHERE).
А нужно вывести все названия товаров из таблицы "c_st", а затем, из таблицы "c_sorder" вывести их количество для одного конкретного заказа если они там есть, а если нет вывести NULL.

Можно как то это в одном запросе сделать, а то пока пришлось селект внутри селекта в цикле писать - не хорошо ((..

Неактивен

 

#2 18.01.2011 22:17:22

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите пожалуйста со сложным запросом

SELECT ..
FROM c_st
LEFT JOIN (SELECT .. FROM c_sorder WHERE c_sorder.zid = 3) t ON t.sid=c_st.id
ORDER BY c_st.id;

Неактивен

 

#3 19.01.2011 02:29:01

Kornelius
Участник
Зарегистрирован: 18.01.2011
Сообщений: 2

Re: Помогите пожалуйста со сложным запросом

Большое Спасибо!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson