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行,我复制了给定查询中已经存在的错误。我修复了它。谢谢,但我很困惑,我以前尝试过这种方法,但从未奏效,而现在你的方法正在奏效:)完美,有点困惑,我如何从列表中返回所有值?它正在返回盖子。。但我没有得到您的“如果您需要该值,请将它们放在两个分组中,然后选择。”,您能帮忙吗?很好,有点混乱,我如何从列表中返回所有值?它正在返回盖子。。但是我没有收到您的“如果您需要该值,请将它们放入两个分组中并选择”,您能帮忙吗?