Давайте предположим, что у меня есть три таблицы - list
, a
и b
table list
|a_id|--|b_id|--'name'
|4 |--|3 |--|foo|
|1 |--|2 |--|foo|
table a
|id|--|name|--|order|
|1 |--|a_1 |--|1 |
|2 |--|a_2 |--|2 |
.....................
|n |--|a_n |--|n |
table b
|id|--|name|--|order|
|1 |--|b_1 |--|1 |
|2 |--|b_2 |--|2 |
.....................
|n |--|b_n |--|n |
a_id
в таблице list
это идентификатор из a
таблицы и
b_id
в таблице list
- это идентификатор из b
таблицы
Мне нужно получить список имен из таблиц a
и b
, упорядоченных по их порядку, где name
='foo' в таблице list
.
т.е.мне нужно получить a_1
, a_4
из таблицы a
и b_2
, b_3
из b
.
Я написал запрос как
SELECT
`a_1_table`.`name` a_1_name,
`b_1_table`.`name` b_1_name
FROM
`list`
LEFT JOIN
`a_1` AS a_1_table ON ( `a_1_table`.`id` = `list`.`a_id` )
LEFT JOIN
`b_1` AS b_1_table ON ( `b_1_table`.`id` = `list`.`b_id` )
WHERE
`list`.`name` = 'foo'
но, как я вижу, в такой структуре я не могу написать order by ...
.то есть.Я могу, но я не получу то, что хочу.
Что я могу сделать?