У меня есть две таблицы:подзапросов и выбор старых строк для нескольких внешних ключей в MySQL
product (idproduct, name, description, tax)
product_storage (idstorage, idproduct, added, quantity, price)
для каждого продукта она может отличаться ценой и старейшая являются «первым, чтобы продавать»
, например, в памяти у меня есть:
1, 1, 2010-01-01, 0, 10.0
2, 1, 2010-01-02, 0, 11.0
3, 1, 2010-01-03, 10, 12.0
4, 2, 2010-01-04, 0, 12.0
5, 2, 2010-01-05, 10, 11.0
6, 2, 2010-01-06, 10, 13.0
7, 3, 2010-01-07, 10, 14.0
8, 3, 2010-01-08, 10, 16.0
9, 3, 2010-01-09, 10, 13.0
и теперь мне нужно, чтобы выбрать все продукты с текущей ценой, которая находится в самой старой строке в product_storage, где количество> 0 для каждого продукта:
SELECT p.idproduct, p.name, p.tax,
(SELECT s.price
FROM product_storage s
WHERE s.idproduct=p.idproduct AND s.quantity > 0
ORDER BY s.added ASC
LIMIT 1) AS price
FROM product p;
работает нормально, но это не делает, когда я хочу, чтобы рассчитать цену с налогом в запросе:
SELECT p.idproduct, p.name, p.tax,
(SELECT s.price
FROM product_storage s
WHERE s.idproduct=p.idproduct AND s.quantity > 0
ORDER BY s.added ASC
LIMIT 1) AS price,
(price * (1 + tax/100)) AS price_with_tax
FROM product p;
MySQL говорит:
Unknown column 'price' in 'field list'
Update
Использование Подзапрос как таблица почти решает проблему (см. ответы) - вопрос только в том, как выбрать самые старые строки из product_storage для нескольких внешних ключей (один и только один для каждого idproduct).
Update 2
Благодаря cmptrgeekken для отличного решения :))
превосходно - спасибо много :) – Marek