Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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
Sql 是否可以将和与三个表一起使用,并使用左联接/内联接_Sql - Fatal编程技术网

Sql 是否可以将和与三个表一起使用,并使用左联接/内联接

Sql 是否可以将和与三个表一起使用,并使用左联接/内联接,sql,Sql,我需要一个非常奇怪的问题。我希望你们这些聪明的家伙会喜欢这个问题(或者这对你们来说是件容易的事:) 下面是我用来从三个表返回值的查询 select listing.* , sum(review.rNumber) as nor , count(review.rNumber) as total , users.username from listing where left join review on listing.lid=review.lID i

我需要一个非常奇怪的问题。我希望你们这些聪明的家伙会喜欢这个问题(或者这对你们来说是件容易的事:)

下面是我用来从三个表返回值的查询

   select  listing.*
   , sum(review.rNumber) as nor
   , count(review.rNumber) as total
   , users.username from listing  
   where
   left join review on listing.lid=review.lID
   inner join users on users.uid=listing.cuid
   group by listing.lid
现在在这个查询中,我想使用一个额外的过滤器。它正在返回列表表中的所有值,但我想使用
WHERE cat='Hair'或其他方法返回所有值

我不知道如何在这个查询中插入线索。。如果可行,请告诉我。
谢谢

您的查询如下

 select  listing.lid
   , sum(review.rNumber) as nor
   , count(review.rNumber) as total
   , users.username from listing  
   left join review on listing.lid=review.lID
   inner join users on users.uid=listing.cuid
   where 
   cat='Hair
   group by listing.lid,users.username
首先,你需要跟随

  • 挑选
  • 在哪里
  • 分组

其次,如果使用group by,则不能选择任何不在聚合函数或group by中的列。因此,清单*无法完成。如果您需要这些值,请将它们放在两个分组中,然后选择。

您的查询应如下所示

 select  listing.lid
   , sum(review.rNumber) as nor
   , count(review.rNumber) as total
   , users.username from listing  
   left join review on listing.lid=review.lID
   inner join users on users.uid=listing.cuid
   where 
   cat='Hair
   group by listing.lid,users.username
首先,你需要跟随

  • 挑选
  • 在哪里
  • 分组

其次,如果使用group by,则不能选择任何不在聚合函数或group by中的列。因此,清单*无法完成。如果需要这些值,请将它们放入两个分组依据中,然后选择。

如果希望在分组依据之前应用筛选器:

select listing.*, sum(review.rNumber) as nor, count(review.rNumber) as total, users.username from listing 
left join review on listing.lid=review.lID
inner join users on users.uid=listing.cuid
where cat='Hair'
group by listing.lid
如果您想在之后使用,请使用“having”:


如果要在分组依据之前应用筛选器,请执行以下操作:

select listing.*, sum(review.rNumber) as nor, count(review.rNumber) as total, users.username from listing 
left join review on listing.lid=review.lID
inner join users on users.uid=listing.cuid
where cat='Hair'
group by listing.lid
如果您想在之后使用,请使用“having”:


按行将您的位置放在您的组之前您需要按where工具将您的条件放在一起,如“where cat='Hair'group by listing.lid”?是的,请看Jeremy Gurr的回答按行将您的位置放在您的组之前您需要按where工具将您的条件放在一起,如“where cat='Hair'group by listing.lid”?是的,看看Jeremy Gurr的回答:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法,例如“join review on listing.lid=review.lid internal join users on users.uid=listing.cuid”在第2Oops行,我复制了给定查询中已经存在的错误。我修复了它。谢谢你,但我很困惑,我以前尝试过这种方法,但从未奏效,现在你的一个有效:)你的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法,例如“join review on listing.lid=review.lid internal join users on users.uid=listing.cuid”在第2Oops行,我复制了给定查询中已经存在的错误。我修复了它。谢谢,但我很困惑,我以前尝试过这种方法,但从未奏效,而现在你的方法正在奏效:)完美,有点困惑,我如何从列表中返回所有值?它正在返回盖子。。但我没有得到您的“如果您需要该值,请将它们放在两个分组中,然后选择。”,您能帮忙吗?很好,有点混乱,我如何从列表中返回所有值?它正在返回盖子。。但是我没有收到您的“如果您需要该值,请将它们放入两个分组中并选择”,您能帮忙吗?