我已经创建了一个表作为两个SELECT语句的联合,比如说FRIENDS_AND_NEIGHBORS,我想删除两者的重复,除了它们在所有字段中不重合。
简化我的情况,我有一个名为FRIENDS的表(具有成对的用户及其链接ID)和一个包含ZIP_CODE的USER表,我从中获取了NEIGHBORS部分。我还在修改一个名为USER_ID = @usr
和ZIP_CODE = @zip
的参考用户。然后我做了以下几点。
CREATE TABLE FRIENDS_AND_NEIGHBORS
(SELECT
USER_ID AS FRND_ID, # Choose neighbors by zipcode.
ZIP_CODE AS FRND_ZIP, #
0 AS FRND_LINK # The reference for friendship comes later.
FROM USER
WHERE ZIP_CODE = @zip)
UNION
(SELECT
frd.FRIEND_ID AS FRND_ID,
usr.ZIP_CODE AS FRND_ZIP,
frd.LINK AS FRND_LINK
FROM FRIENDS frd
JOIN USER usr
ON frd.FRIEND_ID = usr.USER_ID
WHERE frd.USER_ID = @usr);
然后我可能会计算一些邻居/朋友两次,但他们仍然在FRND_LINK
中有所不同
我把它给了零,因为我无法加入这两个
当它被计为朋友时,我想删除具有0的相应邻居行。
感谢您的帮助。