-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

我想从以 root_cat_id 为主键的 2 个表中获取数据。
我想显示所有子类别。

根猫:

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

子猫:

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

2 回答 2

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, ...
于 2013-07-26T13:00:17.510 回答
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' 中的所有内容都必须是 sub_category 中的列名

于 2013-07-26T13:26:45.707 回答