У меня есть 2 таблицы. Первая имеет структуру типа
id (int)
parent_id (int)
category_name (varchar)
Вторая имеет такую структуру, как:
id (int)
old_category (int)
new_category (int)
Я хочу сделать запрос, чтобы вытащить старые категории и имена новых категорий в одном запросе для родителей. То есть, я хочу получить имя старого родителя, а затем получить имя нового родителя. Вторая таблица содержит исторический список всех изменений родительского идентификатора, сделанных в первой таблице. Как я могу это сделать? Спасибо!
SELECT old_cat.category_name, new_cat.category_name
FROM join_table
LEFT JOIN category_table as old_cat
ON old_cat.id = join_table.old_category
LEFT JOIN category_table as new_cat
ON new_cat.id = join_table.new_category;
Если вам удалось зайти так далеко, пришло время прекратить кодирование и начать обучение MySQL JOIN Syntax
.
Присоединяйтесь к ним?
select * from table1
join table2 j1 on table2.id = table1.old_category
join table2 j2 on table2.id = table1.new_category
SELECT
t.id,
t.old_category,
oc.category_name as old_category_name,
t.new_catevory,
nc.category_name as new_category_name
FROM
table1 t
INNER JOIN table2 oc on oc.id = t.old_category
INNER JOIN table2 nc on nc.id = t.new_category
Я бы серьезно рассмотрел некоторые изменения в именах столбцов, кстати. Для начала: почему в категориях 2 нет идентификатора postfix?
Я угадаю, что вы имели в виду:
tblOne
ID
cat_name
tblTwo
ID
tblOneId (old_cat) int
new_cat int
select * from tblOne t1, tblTwo t2 Where t1.id = t2.tblOneId