SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 14.09.2011 15:50:42

Nuzhser
Участник
Зарегистрирован: 16.02.2011
Сообщений: 6

Кто может обьясните запрос

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 таблиц то нет?

Неактивен

 

#2 14.09.2011 16:50:55

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Кто может обьясните запрос

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)


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 14.09.2011 17:02:41

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Кто может обьясните запрос

Запрос будет более понятен, если дополнить его пропущенным (подразумевающимся) AS, который отвечает за присвоение таблицы псевдонима

.. LEFT JOIN _opaproduct_description AS pd ...

Неактивен

 

#4 15.09.2011 11:03:19

Nuzhser
Участник
Зарегистрирован: 16.02.2011
Сообщений: 6

Re: Кто может обьясните запрос

Не знал что AS можно пропускать в запросе. Тогда напрашивается вопрос зачем они вообще нужны - синонимы к таблицам? В памяти MySQL будет создана временная обьединенная таблица с этими именами и к ней можно будет обращаться позже?

Отредактированно Nuzhser (15.09.2011 11:04:02)

Неактивен

 

#5 15.09.2011 12:37:30

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Кто может обьясните запрос

Нет. Для удобства записи.

Чтобы можно было написать:
ON ( wc.weight_class_id = wcd.weight_class_id )
вместо
ON ( _opaweight_class.weight_class_id = _opaweight_class_description.weight_class_id )

Неактивен

 

#6 15.09.2011 15:27:46

Nuzhser
Участник
Зарегистрирован: 16.02.2011
Сообщений: 6

Re: Кто может обьясните запрос

Ага. Ясно. Действует только в данном запросе и якобы дает удобство.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson