php - MySQL 查询不返回任何内容

标签 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 

输出正确的结果。

你能建议我做错了什么吗?

最佳答案

你的上面会给你错误。您将 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/

相关文章:

php - 如何在 HTML 中的 PHP 中同时注释掉 HTML 和 PHP?

php - 按时间戳日期分组不返回任何结果

php - 在搜索表单查询中使用 PDO 准备语句 - PHP

mysql - 具有 hasMany 关系的递归查询

javascript - 如何使用 select AJAX 完成表单?

php - 日期时间比较 PHP/Mysql?

python - 在 Python 3.4 中的 MySQL 中创建表

mysql - 使用 GROUP_CONCAT 返回一行

sql - MySql 多次计算同一列

php - URL Percent 只对 PHP 中的查询进行编码,就像在 Swift 中一样