Join (разные значения для 1 столбца)

neuromachine

Новичок
Доброго времяни суток. Нужна помощь с mysql,
Есть примерный вид запроса:

SELECT
catalog_groups.id,
catalog_groups.title,
catalog_groups.father,
catalog_groups.mother,
catalog_groups.father_id,
catalog_groups.mother_id,
catalog_groups.actual,
catalog_groups.position,
catalog_groups.url,
catalog.url as url_father,
(?catalog.url as url_mother?)
FROM
catalog_groups
INNER JOIN
catalog
ON
catalog_groups.father_id = catalog.id
(???)
WHERE
catalog_groups.owner = '".$this->params['owner_id']."'
".$and_string."
ORDER BY
catalog_groups.position

К сожалению не могу понять как взять столбец "catalog.url" но уже не с "catalog_groups.father_id = catalog.id", а с "catalog_groups.mother_id = catalog.id".

Или перефразировав - мне нужны данные (url) разных id из таблицы catalog, а номера этих id хранятся соответственно в полях father_id и mother_id строки таблицы catalog_groups
 
Два присоединения и использование алиесов для имен таблиц.

FROM
catalog_groups
INNER JOIN catalog t1 ON catalog_groups.father_id = t1.id
INNER JOIN catalog t2 ON catalog_groups.mother_id = t2.id
 

Активист

Активист
Команда форума
Я бы сделал два или N запросов по примари или индексу, нежели джойнить дважды одно и тоже, накладно получится.
 

neuromachine

Новичок
Максим Шугуров
Спасибо, теперь буду пользоваться, упустил тему алиасов таблиц.

Активист
Это выборка меню. Итого на данный момент, возьму 1 запрос за группами и N за каждой выборкой параметра. Может я что-то не верно понимаю? Думал чем меньше запросов тем лучше. Ну а 10(min) это как то совсем не айс. Проясни если возможно.
 
Максим Шугуров
Спасибо, теперь буду пользоваться, упустил тему алиасов таблиц.

Активист
Это выборка меню. Итого на данный момент, возьму 1 запрос за группами и N за каждой выборкой параметра. Может я что-то не верно понимаю? Думал чем меньше запросов тем лучше. Ну а 10(min) это как то совсем не айс. Проясни если возможно.
Позволю себе немного влезть в чужой вопрос:

Айс айс ))) на практике система кушает меньше, если вытаскивать данные большим количеством маленьких запросов, нежели одним большим.
Плюс у меня на практике несколько раз было так, что join после третьего соединения на одну таблицу переставал работать.
С другой стороны, если меню иерархическое (древовидное), то имеет смысл использовать классические алгоритмы (но не рекуррентные), как для хранения данных, так и для вывода.
 
Сверху