|
MySQL.RU - Webboard
Вернуться
Синтаксис в MySQL 5.1 (Вiталiй) 16/10/2008 - 14:32:54
Re: Синтаксис в MySQL 5.1 (bac) 16/10/2008 - 15:55:20
Re: Синтаксис в MySQL 5.1 (Вiталiй) 16/10/2008 - 18:35:38
Re: Синтаксис в MySQL 5.1 (bac) 16/10/2008 - 19:47:00
Re: Синтаксис в MySQL 5.1 (Вiталiй) 16/10/2008 - 20:35:30
Re: Синтаксис в MySQL 5.1 (Евгений) 18/10/2010 - 10:01:02
> Original message text:
> From: Вiталiй - 16/10/2008 - 14:32:54
> Subject:Синтаксис в MySQL 5.1
> -----------------
> Пробую переходить с MySQL 4.0 на 5.1. И столкнулся с непонятной ситуацией - запросы с неявными Join, работавшими в 4.0, в 5.1 не работают. Пример - было
>
> SELECT ....
> FROM Table1, Table2....
> WHERE (Table1.Field1 = Table2.Field2)
>
> чтобы заработало в 5.1, надо переписать
> SELECT ....
> FROM Table1
> INNER JOIN Table2 ON (Table1.Field1 = Table2.Field2)
>
> А ведь и в первом случае нет нарушения стандарта...
> Или есть какой-то параметр ?
>
From: bac - 16/10/2008 - 19:47:00
Subject:Синтаксис в MySQL 5.1
-----------------
Как уже отмечалось, в новой версии (>5) усилен контроль синтаксиса.
Так в вашем варианте идет левое объединение T2 и T3, а условие объединения берется совершенно из другой таблицы.
Поэтому ниже привденный вариант корректен, а то что вы указали нет.
SELECT T1.*, T2.*, T3.*
FROM (Table1 T1, Table2 T2)
LEFT JOIN Table3 T3 ON (T1.ID =T3.ID)
WHERE T1.ID = T2.ID;
Удачи.
Я тоже сначала немного помучился, но результат хорош.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
37599
|
|