Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

сортировка в MySQL

347
26 января 2012 года
Maniak
319 / / 05.11.2005
Подскажите можно ли сделать сортировку что то вроде такой:
 
Код:
SELECT t1.* FROM t1, t2 WHERE t1.id=".$id." ORDER BY t2.name


вторая таблица в запросе как бы и не нужна, нужна только сортировка по одному из ее столбцов.
14
26 января 2012 года
Phodopus
3.3K / / 19.06.2008
если 2ая таблица не нужна, то ее можно выкинуть, а так как выкинуть ее нельзя, значит она нужна.
Если я правильно понял - нужен JOIN
274
27 января 2012 года
Lone Wolf
1.3K / / 26.11.2006
ну вобщем-то там join и есть. Это фактически inner join сейчас
10
27 января 2012 года
Freeman
3.2K / / 06.03.2004
Фактически там сейчас декартово произведение, а не join. Но join нужен, да.
369
27 января 2012 года
Kesano
451 / / 09.10.2007
Пока всё неправильно.
Как вы собираетесь что-то сортировать, если неясно, каким образом сопрягаются таблицы???...

должно быть так:
SELECT * FROM t1 JOIN t2 ON t1.id = t2.id WHERE t1.id = '$id' ORDER BY t2.some_field
12
27 января 2012 года
alekciy
3.0K / / 13.12.2005
Цитата: Freeman
Фактически там сейчас декартово произведение, а не join. Но join нужен, да.


Вообще-то Lone Wolf прав. Там сейчас именно INNER JOIN и есть. А учитывая, что в MySQL JOIN по умолчанию именно INNER, то там таки JOIN и есть.

Пруф смотрим в документации: http://dev.mysql.com/doc/refman/5.0/en/join.html

Цитата:

INNER JOIN and , (comma) are semantically equivalent in the absence of a join condition: both produce a Cartesian product between the specified tables (that is, each and every row in the first table is joined to each and every row in the second table).

347
29 января 2012 года
Maniak
319 / / 05.11.2005
Да, Вы правы, это - SELECT t1.* FROM t1, t2 WHERE t1.id=".$id." фактически INNER JOIN, но только вот поставленной задачи так не решить... Необходимо было использовать именно структуру самого INNER JOIN как посоветовал Kesano, связав таким образом ON t1.id = t2.id колонки, отсортировать все же удалось. Всем спасибо.
12
29 января 2012 года
alekciy
3.0K / / 13.12.2005
На сколько я помню, INNER JOIN не более, чем синтаксический сахар к начальной записи. А не работало по все видимости из-за WHERE.

P.S. Имхо, USING вместо ON читабельнее, если имена полей совпадают.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог