2010-11-29 105 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後綴?

相關問題