сортировка в MySQL
Код:
SELECT t1.* FROM t1, t2 WHERE t1.id=".$id." ORDER BY t2.name
вторая таблица в запросе как бы и не нужна, нужна только сортировка по одному из ее столбцов.
Если я правильно понял - нужен JOIN
ну вобщем-то там join и есть. Это фактически inner join сейчас
Фактически там сейчас декартово произведение, а не join. Но join нужен, да.
Как вы собираетесь что-то сортировать, если неясно, каким образом сопрягаются таблицы???...
должно быть так:
SELECT * FROM t1 JOIN t2 ON t1.id = t2.id WHERE t1.id = '$id' ORDER BY t2.some_field
Цитата: 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).
Да, Вы правы, это - SELECT t1.* FROM t1, t2 WHERE t1.id=".$id." фактически INNER JOIN, но только вот поставленной задачи так не решить... Необходимо было использовать именно структуру самого INNER JOIN как посоветовал Kesano, связав таким образом ON t1.id = t2.id колонки, отсортировать все же удалось. Всем спасибо.
P.S. Имхо, USING вместо ON читабельнее, если имена полей совпадают.