0

这是我的 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 

输出正确的结果。

你能建议我做错什么吗?

4

1 回答 1

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 在 table 中不可用时,您的查询才返回任何内容cate。如果即使ID表中没有 20 和 21 也想获取记录cate,您可以使用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在表cate中返回ID20 和 21 的记录。

于 2013-07-29T04:00:57.747 回答