W3Schools的:
LEFT JOIN:返回左表中的所有行以及匹配的行 从右表
目标:从右表中添加一列
挑战:右表有很多重复的行
目标:希望联接返回左表中的确切行数,或者换句话说,右表中不同的匹配行
示例更新:
每个图像的客户太多,因此可以重复单个ImageID。我想从客户方面返回一个。
SELECT Images.ImageID, Customers.BooleanColumn
FROM Images
LEFT JOIN Customers
ON Images.ImageID = Customers.ImageID
答案 0 :(得分:0)
如果要根据ImageID和BooleanColumn对结果集进行分组,请使用以下脚本。
SELECT Images.ImageID, Customers.BooleanColumn
FROM Images
LEFT JOIN Customers
ON Images.ImageID = Customer.ImageID
Group by Images.ImageID, Customers.BooleanColumn
如果您想检查链接到ImageID的至少一个客户,请使用以下任何一种脚本。
SELECT DISTINCT ImageID
, ( case when Customers.ImageId is null Then 0 Else 1) BooleanValue
FROM Images
LEFT JOIN Customers
ON Images.ImageID = Customers.ImageID
OR
SELECT ImageId,
ISNULL ( (Select 1 from customers c
Where c.imageId=I.imageid),0)BooleanValue
FROM Images I
答案 1 :(得分:0)
仍然没有可用的样本数据或所需的结果。这些被认为是诸如此类在线问题的基本要素。因此,此代码未经测试,但它应该提供我认为您正在寻找的内容。
select i.ImageID
, c.BooleanColumn
from Images i
outer apply
(
select top 1 BooleanColumn
from Customers c2
order by c2.CustomerID --or whatever column you need for ordering
) c