У меня есть две таблицы. Один содержит статьи, другие ценовые котировки. Я пытаюсь выбрать [EAN]
из таблицы статей и price
из таблицы цитат, если размеры обеих таблиц совпадают.Как выбрать из таблицы с критериями, необходимыми для соответствия временной таблице?
Вот пример, я играю с:
DROP TEMPORARY TABLE IF EXISTS haha;
CREATE TEMPORARY TABLE haha (
tmp_kto VARCHAR(7) DEFAULT ''
, tmp_kz VARCHAR(3) DEFAULT ''
, tmp_preisliste VARCHAR(1) DEFAULT ''
, tmp_eg VARCHAR(3) DEFAULT ''
, tmp_length VARCHAR(3) DEFAULT ''
, tmp_width VARCHAR(3) DEFAULT ''
, tmp_price DECIMAL(10,2) DEFAULT 0.00
) ENGINE=MEMORY;
INSERT INTO haha (
tmp_kz, tmp_kto, tmp_preisliste, tmp_eg, tmp_length, tmp_width, tmp_price
) VALUES (
"000","4316134","I","520","150","200","14.95"
);
INSERT INTO haha (
tmp_kz, tmp_kto, tmp_preisliste, tmp_eg, tmp_length, tmp_width, tmp_price
) VALUES (
"001","112233","L","520","150","200","17.95"
);
критерии соответствия должны быть [EG]
и [size]
. Для size
Мне нужно подстроить соответствующий размер вне поля (иначе, я думаю, формат составляет, например, 050x250 см).
SELECT ean, preis
FROM (
SELECT a.ean AS ean
, h.tmp_price AS preis
FROM articles AS a
LEFT JOIN haha AS h
ON h.tmp_eg = a.eg
AND h.tmp_kz = "000"
AND h.tmp_kto = "0000000"
AND h.tmp_preisliste = "I"
AND h.tmp_length = SUBSTRING(a.size,1,3)
AND h.tmp_width = SUBSTRING(a.size,4,3)
) AS temp;
Что не работает.
Вопрос:
Что мне нужно изменить, чтобы сделать его работу?
EDIT
второй таблицы выглядит следующим образом:
CREATE TABLE `articles` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`ean` VARCHAR(35) NULL DEFAULT NULL,
`size` VARCHAR(35) NULL DEFAULT NULL,
`eg` VARCHAR(35) NULL DEFAULT NULL,
PRIMARY KEY (`id`),
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1;
INSERT INTO articles (
ean, size, eg
) VALUES (
"1111111111111","150x200cm","520"
);
INSERT INTO articles (
ean, size, eg
) VALUES (
"2222222222222","150x220cm","520"
);
Спасибо за помощь!
увы, запятая не хватает ... Давайте посмотрим, если это помогает – frequent
где находится второй СТОЛ? –
Я публикую несколько записей. 1мин- – frequent