MySQL查询什么都不返回

时间:2013-07-29 03:56:14

标签: php mysql sql phpmyadmin

这是我的MySQL查询:

SELECT a.hinh, cate.ten
FROM (
      SELECT * FORM pro WHERE pro.id IN ( 20, 21 )
     ) AD a
INNER JOIN cate c
ON a.cateid = c.cate.id 

但是

SELECT a.hinh, cate.ten
FROM pro AS a
INNER join cate c
on a.cateid = c.cate.id 

输出正确的结果。

你能告诉我我做错了什么吗?

1 个答案:

答案 0 :(得分:0)

您的上述内容会给您错误。您的拼写错误ASAD。当你可以直接这样做时,也不需要使用子查询:

SELECT a.hinh, cate.ten
  FROM pro as a
 INNER JOIN  cate
    ON a.cateid = cate.id 
 WHERE a.id IN (20,21)

此外,仅当ID 20和21在表cate中不可用时,您的查询才会返回任何内容。如果您想要在ID表中找不到cate 20和21时获取记录,则可以使用LEFT JOIN

SELECT a.hinh, cate.ten
  FROM pro as a
  LEFT JOIN cate
    ON a.cateid = cate.id 
 WHERE a.id IN (20,21)

这将返回表pro中的记录,但会在NULL 20和21的表cate中返回ID