2010-11-29 102 views
0

我有2个表。首先有一个像查询从具有2个ID列的表中获取名称

id (int) 
parent_id (int) 
category_name (varchar) 

结构的第二个具有类似的结构:

id (int) 
old_category (int) 
new_category (int) 

我想进行查询拉老品类和新的类别名称都在为父母一个查询。也就是说,我想获取旧父级的名称,然后获取新父级的名称。第二个表格包含第一个表格中所有父级ID更改的历史列表。我怎样才能做到这一点?谢谢!

+0

来吧,这是简单的加入... – 2010-11-29 22:19:49

+2

@barti_ddu:每个人都从某个地方开始。还是你出生的简单连接编码到你的DNA? – Stephen 2010-11-29 22:23:27

回答

0

我将以此来猜测你的意思:

tblOne

ID

cat_name

tblTwo

ID

tblOneId(old_cat)诠释

new_cat INT

select * from tblOne t1, tblTwo t2 Where t1.id = t2.tblOneId 
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

0

加入他们?

select * from table1 
    join table2 j1 on table2.id = table1.old_category 
    join table2 j2 on table2.id = table1.new_category 
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后缀?

相关问题