Запрос из двух таблиц?

seva2

Партнер PHPClub.ru
Запрос из двух таблиц?

Вопрос есть таблице orders в ней 1 запись соответствует 1 заказы
Есть таблица order_products в ней может быть для 1 заказа несоклько записей, когда человек заказывает в 1 заказе более 1 товара

Так вот, я хочу вывести заказы у которых товары есть в наличие( для этого есть поле в таблице order_products с название quaranty, т.е нудно чтобы quaranty>0 у ВСЕХ продуктов в заказе)

Подтскажите плиз?
 

WP

^_^
Может quantity?
Почему из двух? У тебя в order_products лежит ID ряда в orders. Выбираешь SELECT * FROM `order_products` WHERE `orderid` = {$orderid} AND `quantity` > 0
 

seva2

Партнер PHPClub.ru
не мне надо все это сделать 1 запросом)))

Т.е в списке заказов выводиться не по 1 строке на заказа, а по нескольку, в зависимости от количества продуктов... понимаеш?

Просто не хочу сам запрос постить, а то он огромный, полно таблиц подклчает!
 

WP

^_^
Не понимаю тебя. Можешь сначала привести структуру таблиц, а потом внятно по-русски сказать что ты хочешь получить из них? А не говорить что тебе "все это" надо сделать одним запросом. А главное "не".
А ты и не пости запрос, ты внятно поясни.
 

seva2

Партнер PHPClub.ru
SELECT * FROM `order_products` WHERE `orderid` = {$orderid} AND `quantity` > 0

Смотри пример:
Заказ 36777 например в нем 4 позиции, 3 из которых в наличии 1 нет, то какой результат будет?

Просто выведеться 3 позиции из заказа, а одна позиция просто не выведеться как будтно клиент ее не заказал... А мне нужны заказы только в полной комплектации!

Надеюсь понятно объяснил)
 

WP

^_^
Сколько раз тебя нужно попросить привести структуру этих двух несчастных таблиц?

Так скажи ЧТО тебе нужно получить. Что значит тебе нужны заказы только в полной комплектации. SELECT 'заказы только в полной комплектации' AS `lol`.
Тебе нужно установить факт полностью ли укомплектован заказ или что?
Ааа... кажется я понял что тебе нужно...
SELECT *, (SELECT COUNT(*) FROM `order_products` WHERE `orders`.`id` = `order_products`.`orderid` AND `quantity` = 0) AS `n` FROM `orders` HAVING `n` = 0
 

RHSC

Новичок
У меня возникла похожая проблема, справится с которой, моих познаний в PHP и MySQL не хватает.

В базе данный три таблицы:
1. products_to_categories
В ней 2 поля products_id и categories_id
2. products
В ней поля products_id и products_quantity
3. categories
В ней поля categories_id и categories_name

Необходимо выводить название категории, если в ней есть хотя бы один товар, причем его количество не равно 0.

Пишу такой запрос:

select count(*) as total from products_to_categories where categories_id = '" . $id .”
(переменная $id задается через цикл)

В этом случае просто подсчитывается количество товаров в категории, даже если количество каждого товара(products_quantity) равно 0. Как сделать чтобы подсчитывались только товары с products_quantity больше 0?
 

WP

^_^
Один вопрос одна тема.

[sql]SELECT *, (SELECT COUNT(*) FROM `products_to_categories` LEFT JOIN `products` ON `products_to_categories`.`products_id` = `products`.`products_id` WHERE `categories`.`categories_id` = `products_to_categories`.`categories_id` AND `products_quatity` > 0) AS `n` FROM `categories` HAVING `n` > 0[/sql]

Хорошенько выкури мануал по JOIN'у, и остальное.

-~{}~ 14.01.07 13:40:

> (переменная $id задается через цикл)
Такое нужно в 0.01% от всех задач, приходится делать несколько похожих запросов. А в таких простейших выборках как эта, всё делается одним запросом.
 

seva2

Партнер PHPClub.ru
Походу у меня двойные запрсоы не пашут:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT COUNT(*) FROM `products`) AS `n` from orders' at line 1
PHP:
$get_postcode_num=mysql_query("select *, (SELECT COUNT(*) FROM `products`) AS `n` from orders");
Да?
 

seva2

Партнер PHPClub.ru
Active Persistent Links 0
Active Links 0
Client API version 4.0.24
MYSQL_MODULE_TYPE external
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_INCLUDE -I/usr/local/include/mysql
MYSQL_LIBS -L/usr/local/lib/mysql -lmysqlclient
 
Сверху