这是我的 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
输出正确的结果。
你能建议我做错了什么吗?
最佳答案
你的上面会给你错误。您将 AS
拼写为 AD
。当您可以像这样直接执行时,也不需要使用子查询:
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
中不可用时,您的查询才不会返回任何内容。如果即使 cate
表中没有 ID
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
中返回记录,但在表cate
中为ID
返回NULL
20 和 21。
关于php - MySQL 查询不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17915824/