我有2张桌子。第一个有像
这样的结构id (int)
parent_id (int)
category_name (varchar)
第二个结构如下:
id (int)
old_category (int)
new_category (int)
我想进行查询以在父查询的一个查询中拉出旧类别和新类别名称。也就是说,我想获取旧父级的名称,然后获取新父级的名称。第二个表包含第一个表中所有父ID更改的历史列表。我怎样才能做到这一点?谢谢!
答案 0 :(得分:1)
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
了。
答案 1 :(得分:0)
我会猜测你的意思:
<强> tblOne 强>
ID
cat_name
<强> tblTwo 强>
ID
tblOneId(old_cat)int
new_cat int
select * from tblOne t1, tblTwo t2 Where t1.id = t2.tblOneId
答案 2 :(得分:0)
加入他们?
select * from table1
join table2 j1 on table2.id = table1.old_category
join table2 j2 on table2.id = table1.new_category
答案 3 :(得分:0)
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
我会认真考虑对列名进行一些修改,顺便说一句。首先:为什么table2中的类别没有id后缀?