我有一张桌子(灌木丛),上面有1600个独特的物品。第二张桌子,奖金超过一百万。我运行INNER JOIN并获得65个匹配项:
SELECT a.`BW Parent Number` , a.`Vendor Name`, b.`Parent Supplier Name`
FROM `scrubs` AS a
JOIN pdwspend AS b ON a.`BW Parent Number` = b.`Child Supplier ID`
WHERE a.`year` =2014
AND b.`BU ID` = 'BU_1'
AND b.version LIKE '%GOV%'
GROUP BY a.`BW Parent Number`
然后,我运行一个LEFT OUTER JOIN,得到相同的65个结果:
SELECT a.`BW Parent Number` , a.`Vendor Name`, b.`Parent Supplier Name`
FROM `scrubs` AS a
LEFT OUTER JOIN pdwspend AS b ON a.`BW Parent Number` = b.`Child Supplier ID`
WHERE a.`year` =2014
AND b.`BU ID` = 'BU_1'
AND b.version LIKE '%GOV%'
GROUP BY a.`BW Parent Number`
为什么不从左侧表中获取所有行,并为b下不匹配的行显示NULL。Parent Supplier Name
?
谢谢!
因为您没有使用on子句。更改为:
SELECT a.`BW Parent Number`, a.`Vendor Name`, b.`Parent Supplier Name`
FROM scrubs AS a
LEFT OUTER JOIN pdwspend AS b
ON a.`BW Parent Number` = b.`Child Supplier ID`
and b.`BU ID` = 'BU_1'
AND b.`version` LIKE '%GOV%'
WHERE a.`year` = 2014
同样,分组依据也没有任何意义。如果您正在汇总某些内容,则可以使用group by子句。
根据您对重复行的评论,这可能是因为名为“ pdwspend”的表的每个“子供应商ID”都有多个行。这是该表上您要与之关联的“
scrubs”表的唯一字段。因此,是的,对于pdwspend上的每个匹配行,您将拥有与第二张表相同的行(该表上可能还有其他列,因此它们实际上不是“重复的”行,您只是没有选择足以说明的列)。
因为您只对选择的列数感兴趣,并且不希望基于这些列“重复”行,所以可以尝试使用以下方法来区分:
(您在注释中输入的查询中出现错误的原因是,因为内联视图(from子句中的子查询)未选择“父供应商名称”字段,所以是的,在该字段中不存在内联视图,因为您没有将其添加到该内联视图的选择列表中。
select a.`BW Parent Number`, a.`Vendor Name`, b.`Parent Supplier Name`
from scrubs a
left join ( select distinct `Child Supplier ID`, `Parent Supplier Name`
from pdwspend
where `BU ID` = 'BU_1'
and `version` LIKE '%GOV') b
on a.`BW Parent Number` = b.`Child Supplier ID`
where a.`year` = 2014
文档: 操作: 合作伙伴: HQL(“INCASAT”=“兑现”,“VANDUT”=“出售”):
当我执行普通Select时,返回正确的结果,但当我执行Select for DB uptime时,它始终返回相同的第一个结果。我确实检查了Postgres日志,我看到select被执行了。
然后mocked repository返回传递给它的内容,我可以轻松地测试它。 有什么想法吗?如何强制mockito返回?
问题内容: 我在Mockito中有这个: 该方法应始终返回一个新实例,但它会返回两次相同的引用。 为什么该方法不返回新值? 问题答案: 该方法将始终返回传递给它的内容。该代码是在调用之前执行的。然后将创建的内容传递给。因此有一个绝对的实例而不是创建机制。 如果需要提供新实例,请使用thenAnswer
我正在使用GenericRequest(内置jsonrequest的扩展)对接收json对象并返回一个字符串的服务器进行REST调用,如果json对象已经存在,则为“0”,否则为非零字符串。 然而,使用下面的代码,无论我发送了什么,我总是得到一个“0”回来。 在Postman中进行测试时,给定输入,如:{“Email”:“DLEE23122”,“Password”:“1234”,“UserName
我正在尝试从product表中获取所有记录,这些记录是唯一的,但我使用leftjoin添加第二个表,其中包含这些产品的图像,但当我这样做时,它会多次返回一些产品,因为一些产品有一个或多个图像。我如何在product_images表上使用限制来确保它只得到1个图像而不是全部。下面的例子不起作用,那么这可能吗?
有一个InfiniteScrollListener,在该侦听器中,在方法中,我计算可见项计数和总计项计数,以检查是否应该加载新项。当totalItemCount和visibleItemCount相同时,会导致无限循环的加载。侦听器与我的另一个或作为父级的侦听器一起工作得很好。我想保持这种结构,因为客户不会接受改变。 我在一个活动中有一个片段,它的布局如下所示
我有以下代码: 问题:是否可以替换 d - *我对这个问题的标题不太清楚-如果有问题,请编辑。 谢啦