我有两个数据集:1)
Table A
id name
1 raju
2 ramu
2 ramu
3 rakesh
表a
2)
Table B
id Status
1 Y
1 Y
2 N
2 N
2 Y
3 N
表b
我想在配置单元中执行左外部联接(表a左外部联接表b),以便在联接列“id”上的两个数据集时,如果表b中的状态列至少有一次具有“y”,则结果数据集的状态将为“yes”,如下所示:
Final Result:
id name Status
1 raju Yes
2 ramu Yes
2 ramu Yes
3 rakesh No
我不想在执行联接时增加结果中的记录数。结果表应该只有4条记录,而不是5条(根据匹配的联接条件增加记录)。
我如何做到这一点?
1条答案
按热度按时间roejwanj1#
为了满足这个要求,需要将表b的行数减少到表a的每行一行或零行。
像这样做,每一次都有一排
id
状态为的值Y
.那你可以用旧的
LEFT JOIN ... IS NOT NULL
计算a的哪些行与b的哪些行匹配的技巧。就这样(http://sqlfiddle.com/#!9/71d84b/1/0)