Задавайте вопросы, мы ответим
Вы не зашли.
SELECT * , wcd.unit AS weight_class, mcd.unit AS length_class
FROM _opaproduct p
LEFT JOIN _opaproduct_description pd ON ( p.product_id = pd.product_id )
LEFT JOIN _opaweight_class wc ON ( p.weight_class_id = wc.weight_class_id )
LEFT JOIN _opaweight_class_description wcd ON ( wc.weight_class_id = wcd.weight_class_id )
LEFT JOIN _opalength_class mc ON ( p.length_class_id = mc.length_class_id )
LEFT JOIN _opalength_class_description mcd ON ( mc.length_class_id = mcd.length_class_id )
В частности не понятно назначение - pd , wc , wcd , mc , mcd. Таблиц таких нет а выборка работает нормально. И откуда берутся вначале запроса поля wcd.unit и mcd.unit таблиц то нет?
Неактивен
pd, wc, wcd, mc и mcd - это синонимы к таблицам
_opaproduct_description, _opaweight_class, _opaweight_class_description, _opalength_class и _opalength_class_description соответственно.
wcd.unit - это _opaweight_class_description.unit, а mcd.unit - _opalength_class_description.unit
Отредактированно deadka (14.09.2011 16:51:21)
Неактивен
Запрос будет более понятен, если дополнить его пропущенным (подразумевающимся) AS, который отвечает за присвоение таблицы псевдонима
Неактивен
Не знал что AS можно пропускать в запросе. Тогда напрашивается вопрос зачем они вообще нужны - синонимы к таблицам? В памяти MySQL будет создана временная обьединенная таблица с этими именами и к ней можно будет обращаться позже?
Отредактированно Nuzhser (15.09.2011 11:04:02)
Неактивен
Нет. Для удобства записи.
Чтобы можно было написать:
ON ( wc.weight_class_id = wcd.weight_class_id )
вместо
ON ( _opaweight_class.weight_class_id = _opaweight_class_description.weight_class_id )
Неактивен
Ага. Ясно. Действует только в данном запросе и якобы дает удобство.
Неактивен