|
|
|
| Добрый день.
Необходимо произвести выборку с двух таблиц, с одной таблицы выборку всех строчек по условию , а с другой таблицы цену и кол-во если в ней есть запись с таким же кодом как и в первой, если записи нет то просто вернуть 0.
вот пример таблиц ...
Таблица 1
_________________
kod | title | col
------------------------------
Гл00001 | товар1 | 2
Гл00002 | товар2 | 1
Гл0023 | товар3 | 5
ТР095 | товар4 | 3
JV000023 | товар5 | 1
-----------------------------
Таблица 2
________________________
kod | title | col | price
------------------------------------------
Гл00001 | товар1 | 2 | 1250
Гл0023 | товар3 | 5 | 950
JV000023 | товар5 | 1 | 2400
------------------------------------------
В результате хотелось бы получить результат
kod - таблица 1
title - таблица 1
col - таблица 1
col_s - col в таблице 2
price - таблица 2
sum - col(таблица 1) *(умножить) price(Таблица 2)
если в таблице 2 нет записи с таким же kod как и в таблице 1, то тогда col_s=0,price=0, sum=0
чтобы более ясно представить ситуацию
Таблица 1 - это корзина(Доборная)
Таблица 2 - это каталог товаров
в каталоге товаров часто меняются цены и кол-во, а также удаляются какие то позиции ...
поэтому приходится брать цену от туда а также проверять кол-во. | |
|
|
|
|
|
|
|
для: m@rchello
(23.07.2010 в 08:02)
| | А зачем вам дубликаты title в обоих таблицах, если вы всегда можете взять актуальный из таблицы каталога товаров?
Ну а запрос будет выглядеть так.
SELECT
t1.kod, t1.title, t1.col,
t2.col as col_s, t1.price, (t1.col*t2.price) as sum
FROM Таблица 1 t1
LEFT JOIN
Таблица 2 t2 USING(kod)
|
Вообще не совсем понятна колонка количества товара в таблице каталога, ну вам наверно виднее | |
|
|
|
|
|
|
|
для: Ученик
(23.07.2010 в 09:50)
| | дубликаты title - это не хорошо, согласен
Но у меня доборная корзина, тоесть человек сегодня поскладывал, завтра поскладывал ... а прайс в день перезаливается около 2-3 раз + совершаются покупки порядка 20 раз в день ... соответственно из каталога(прайса) удаляются записи .... а в корзине мне нужно оставить этот товар и сказать что он продан.
что касается колонок количества ...
есть колонка количества в корзине и количества на складе ... помоему всё понятно.
У меня возник вопрос к Вам а что означает вот эта строка USING(kod) | |
|
|
|
|
|
|
|
для: m@rchello
(23.07.2010 в 10:04)
| | помоему всё понятно
понятно, что тот человек кто создавал таблицу, абсолютно не слышал о уровнях нормализации и принципах построения БД | |
|
|
|
|
|
|
|
для: m@rchello
(23.07.2010 в 10:04)
| | почему из каталога(прайса) удаляются записи? | |
|
|
|
|
|
|
|
для: m@rchello
(23.07.2010 в 10:04)
| | >У меня возник вопрос к Вам а что означает вот эта строка USING(kod)
Это указание по какому полю таблицы нужно связать.
Можно еще сделать так
LEFT JOIN
Таблица 2 t2 ON t1.kod = t2.kod
|
| |
|
|
|