【发布时间】:2014-07-29 18:43:24
【问题描述】:
我有代码可以选择一些应用程序,但 LEFT JOIN 正在创建重复项。
问题:如何去除由
产生的重复LEFT JOIN
attachments as att
ON
(a.ssn = att.ssn AND att.doc_type = 'id_copy' AND att.source = 'cpt3')
我的工作:
我正在考虑 SELECT DISTINCT 或 GROUP BY,但不知道将它们放在哪里。
这是查询:
SELECT
a.*, c.code, l.who, l.locked_time, att.id AS attnew,
( SELECT
COUNT(*)
FROM
applications as a2
WHERE
a2.approved = 'Y'
AND
a2.paid = 'Y'
AND
a2.paid_back = 'Y'
AND
a2.ssn = a.ssn
) AS previous_apps
FROM
applications as a
LEFT JOIN
locked_by as l
USING(id)
LEFT JOIN
campaign_codes as c
ON
c.id = a.campaign
LEFT JOIN
attachments as att
ON
(a.ssn = att.ssn AND att.doc_type = 'id_copy' AND att.source = 'cpt3')
WHERE
a.closed='N'
AND
a.paid = 'N'
ORDER BY
a.arrived_date
DESC
【问题讨论】:
-
SQL 标签下目前大约有 2636 个关于
JOIN和重复行的问题。很难想象这不是其中至少一个的复制品。
标签: sql duplicates left-join