Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 需要使用带限制的左连接,但它工作错误_Php_Sql_Pdo_Sqlite - Fatal编程技术网

Php 需要使用带限制的左连接,但它工作错误

Php 需要使用带限制的左连接,但它工作错误,php,sql,pdo,sqlite,Php,Sql,Pdo,Sqlite,我有两个sql查询: 一, 二, 所以我想做得更好,我尝试使用左连接: SELECT DISTINCT * FROM sh_itemviews LEFT JOIN sh_item ON sh_item.id = sh_itemviews.item_id; WHERE sh_itemviews.login='".$login."' ORDER by sh_itemviews.time DESC LIMIT 5" 结果,我得到了所有数据,其中sh_item.id=sh_item

我有两个sql查询:

一,

二,

所以我想做得更好,我尝试使用左连接:

SELECT DISTINCT * 
FROM sh_itemviews 
      LEFT JOIN sh_item ON sh_item.id = sh_itemviews.item_id; 
WHERE sh_itemviews.login='".$login."' 
ORDER by sh_itemviews.time DESC LIMIT 5"
结果,我得到了所有数据,其中sh_item.id=sh_itemviews.item_id;但是其他的构造器被忽略了。 我做错了什么?
谢谢

WHERE语句前面有一个分号

"SELECT DISTINCT * FROM sh_itemviews LEFT JOIN sh_item ON sh_item.id = sh_itemviews.item_id**;** WHERE sh_itemviews.login='".$login."' ORDER by sh_itemviews.time DESC LIMIT 5"
正确的答案是:

"SELECT DISTINCT * 
FROM sh_itemviews 
LEFT JOIN sh_item ON sh_item.id = sh_itemviews.item_id 
WHERE sh_itemviews.login='".$login."' 
ORDER by sh_itemviews.time DESC 
LIMIT 5"
原因是WHERE子句之前有额外的半列,请在下面查找更新的查询

 SELECT DISTINCT * 
 FROM sh_itemviews 
      LEFT JOIN sh_item ON sh_item.id = sh_itemviews.item_id 
 WHERE sh_itemviews.login='".$login."' 
 ORDER by sh_itemviews.time DESC LIMIT 5"

在where之前,您使用了错误的语法 试试这个语法

SELECT DISTINCT * 
FROM sh_itemviews 
LEFT JOIN sh_item ON sh_item.id = sh_itemviews.item_id

WHERE sh_itemviews.login='".$login."' 
ORDER by sh_itemviews.time DESC
LIMIT 5"

答案需要格式化,但我刚才看到的答案与你20分钟前发布的答案完全相同。可能是因为复习了第一个问题。无论如何我帮你重新格式化了。
 SELECT DISTINCT * 
 FROM sh_itemviews 
      LEFT JOIN sh_item ON sh_item.id = sh_itemviews.item_id 
 WHERE sh_itemviews.login='".$login."' 
 ORDER by sh_itemviews.time DESC LIMIT 5"
SELECT DISTINCT * 
FROM sh_itemviews 
LEFT JOIN sh_item ON sh_item.id = sh_itemviews.item_id

WHERE sh_itemviews.login='".$login."' 
ORDER by sh_itemviews.time DESC
LIMIT 5"