如何在mysql中编写查询命令

时间:2011-10-27 09:14:06

标签: mysql

categories(TABLE_CATEGORIES),其字段为:categories_idparent_id

categories_description(TABLE_CATEGORIES_DESCRIPTION),其中包含以下字段:categories_idcategories_name

现在,根据$cpath=parent_id我希望获得categories_namecategories_id,这是我的命令,但它显示语法错误。

$query = "select c.categories_id, cd.categories_name from " .
TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd
                          where c.categories_id=cd.categories_id and c.parent_id=".$cPath;

错误:1064您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第2行的''附近使用正确的语法

2 个答案:

答案 0 :(得分:0)

你应该使用

SELECT cd.categories_id, cd.categories_name
FROM `TABLE_CATEGORIES_DESCRIPTION` cd 
    INNER JOIN `TABLE_CATEGORIES` c
    ON cd.categories_id = c.categories_id
WHERE c.parent_id = your_id

已编辑以反映已修改的用户问题:
你确定“TABLE_CATEGORIES”和“TABLE_CATEGORIES_DESCRIPTION”都不包含空格或奇怪的字符吗?
如果是这样,你必须用反引号将它们括起来。

答案 1 :(得分:0)

内部联接可能会有所帮助......

SELECT c.categories_id,cd.categories_name 来自TABLE_CATEGORIES c INNER JOIN TABLE_CATEGORIES_DESCRIPTION cd ON c.categories_id = cd.categories_id where c.parent_id = $ cPath

请检查此代码:

$ query =“select c.categories_id,cd.categories_name from”。 TABLE_CATEGORIES。 “ C, ” 。 TABLE_CATEGORIES_DESCRIPTION。 “cd where c.categories_id = cd.categories_id and c.parent_id ='”。$ cPath。“'”;