Php MySQL查询不返回任何内容
这是我的MySQL查询:Php MySQL查询不返回任何内容,php,mysql,sql,phpmyadmin,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 但是 输出正确的结果 你能告诉我我做错了什么吗?你的上述内容会给你带来错误。您将拼错为ASAD。此外,当您可以像这样直接执行子查询时,也不需要使用子查询: SELECT a.hinh, cate.t
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
但是
输出正确的结果
你能告诉我我做错了什么吗?你的上述内容会给你带来错误。您将
拼错为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
中不可用时,您的查询才不会返回任何内容。如果您想在表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
20和21中的NULL
。您能解释一下您的查询与上面的查询在逻辑上有什么不同吗。。我的意思是这将解决OP问题,我不这么认为?因为我认为这只是拼写错误。。。我仍然不相信,朋友…我认为两者是相同的…您的第二个查询返回了表1的所有行,我不确定OP是否需要它not@user2424766-高兴!顺便问一下,你的实际问题是什么?你能提供样本数据吗???
SELECT a.hinh, cate.ten
FROM pro as a
LEFT JOIN cate
ON a.cateid = cate.id
WHERE a.id IN (20,21)