2013-07-26 71 views
-2
SELECT r.`root_cat_name`, 
     r.`root_cat_id`, 
     s.`sub_cat_name`, 
     s.`sub_cat_id` 
    FROM `root_category` AS r 
    INNER JOIN `sub_category` AS s ON r.`root_cat_id` = s.`sub_cat_id` 
    ORDER BY r.`root_cat_id` DESC 

我想從2個表中獲取數據,其中root_cat_id是主鍵。
我想顯示所有子類別。這是mysql查詢正確的從兩個表中獲取數據

根貓:

id root_cat_name 
-- ----- 
1 item1 
2 item2 

SUBCAT:

id root_cat_id sub_cat_name 
-- ----------- ------ 
1 1   abc 
2 1   sadj 
3 2   asd 
4 1   asdasd 
+0

問題是什麼? – araknoid

+0

它不能正確使用所示的表格......沒有列'root_cat_name'。 它看起來像加入應該是'ON r.id = s.root_cat_id'雖然 –

+0

btw我推薦這個網站作爲調試和分享你的SQL問題的好方法: http://sqlfiddle.com/ –

回答

0

這是否工作:

SELECT r.root_cat_name, 
    r.root_cat_id, 
    s.sub_cat_name, 
    s.sub_cat_id 
FROM root_category AS r 
INNER JOIN sub_category AS s ON r.id = s.root_cat_id 
ORDER BY r.id DESC 

一切都在「R」必須從root_category列名,一切都很在「s」必須成爲子類別中的列名稱

1
INNER JOIN `sub_category` s ON r.`root_cat_id` = s.`sub_cat_id` 

應該

INNER JOIN `sub_category` s ON r.`id` = s.`root_cat_id` 

=>您需要使用的列名,因爲它們是在定義表

編輯: 同樣的原則適用於您的SELECT。 如果你想有顯示的另一列名,用AS

SELECT r.id AS root_id, ... 
相關問題