Php 需要使用带限制的左连接,但它工作错误
我有两个sql查询: 一, 二, 所以我想做得更好,我尝试使用左连接: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
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"