[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: GROUP BY в RIGHT JOIN
Kusss
SELECT s.id_fact, s.date,SUM(s.number) AS number, s.finish, s.hide, u.fio, o.id_order, o.name
FROM `sklad_temp` AS s
LEFT JOIN `user` AS u ON a.id = s.id_user
RIGHT JOIN `fact` AS f ON f.id = s.id_fact AND s.id_fact > 0
RIGHT JOIN (SELECT MIN(id) AS id_order, name FROM `order` WHERE `date` = f.torg12 AND id_magazin = f.id_magazin GROUP BY `date`) AS o ON o.id_order = s.id_fact AND f.id > 0
WHERE s.tovar = '0661100'
GROUP BY s.finish
ORDER BY s.finish DESC

Запрос ругается : Unknown column 'f.torg12' in 'where clause'

У меня на складе есть товар = 0661100. И история по нему.
Товар может добавить/списать сотрудник или автоматически при создании накладной (id_fact). Накладная связана с заказом: `date` = f.torg12 AND id_magazin = f.id_magazin

Чего я хочу сделать.
Хочу узнать номер и наименование заказа. При условии что поле накладной s.id_fact > 0

Без второго RIGHT JOIN Все работает, и f.torg12 выдается
Oyeme
Без тестовых данных сложно что-то сказать.

Попробуйте заключить в скобки

(ON o.id_order = s.id_fact AND f.id > 0 )

Цитата
However, the precedence of the comma operator is less than of INNER JOIN, CROSS JOIN, LEFT JOIN, and so on. If you mix comma joins with the other join types when there is a join condition, an error of the form Unknown column 'col_name' in 'on clause' may occur. Information about dealing with this problem is given later in this section.
glock18
Kusss
У вас вложенный запрос не видит таблицу/алиас f. Либо без вложенного запроса обходитесь, либо выносите условие оттуда, либо джойните таблицу и там.
Kusss
А Если я сделаю JOIN внутри второго SELECT , я там смогу подставить s.id_fact ?
glock18
Во вложенном запросе при джойне вы только видите то, что в нем подключаете. Если приджойните там таблицу, которая вам нужна, то увидите
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.