这个mysql查询是否正确用于从两个表中获取数据

时间:2013-07-26 12:50:13

标签: mysql

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是主键 我想显示所有子类别。

root cat:

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

2 个答案:

答案 0 :(得分: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, ...

答案 1 :(得分: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

中的列名