[英]Nova Relatable Filtering - how to filter users whose company_id matches locations company_id
[英]select company_id for duplicated fields in mysql
我想從重復的字段中選擇company_id。
>
> --------------------------------------------------------------------
| id | company_id | contact_name | ph_no | mobile_no | email |
> ----------------------------------------------------------------------
| 1 | 402 | shuhaib |1234 |7788 |abc@rain.com |
| 2 | 402 | salih |1234 |7877 |xqw@rain.com |
| 3 | 410 | musammil |1234 |4545 |abc@rain.com |
| 4 | 411 | haris |1234 |9495 |wew@rain.com |
| 5 | 412 | dileep |5467 |5852 |bgf@rain.com |
| 6 | 412 | wahab |8019 |9858 |mng@rain.com |
| 11 | 414 | jithesh |7025 |9495 |trf@rain.com |
> ----------------------------------------------------------------------
當ph_no = ph_no或mobile_no = mobile_no或email = email時,我想從上述單個表中獲取company_id和duplicate_company_id,請僅在company_id!= plicate_company_id的情況下選擇這兩個ID。 結果是
---------------------------------------
| company_id | duplicate_company_id |
---------------------------------------
| 402 | 410 | because same ph_no ,email
| 402 | 411 | because same ph_no
| 411 | 414 | because same mobile_no
--------------------------------------
我的查詢有時無法正常工作
SELECT a.company_id,
max(b.id) AS duplicate_company_id
FROM
(SELECT company_id,
ph_no,
mobile_no,
email
FROM crm_customer_contacts
WHERE IFNULL(ph_no, '') != ''
OR IFNULL(mobile_no, '') != ''
OR IFNULL(email, '') != ''
GROUP BY ph_no,
mobile_no,
email HAVING count(company_id) > 1
ORDER BY company_id) a
JOIN crm_customer_contacts b ON b.company_id != a.company_id
AND (a.ph_no = b.ph_no
OR a.mobile_no = b.mobile_no
OR a.email = b.email )
GROUP BY a.company_id
ORDER BY company_id
select A.company_id,B.company_id as duplicate_company_id
from company_table A, company_table B
where A.id != B.id
AND
A.company_id != B.company_id
AND
(
A.ph_no = B.ph_no
OR
A.mobile_no = B.mobile_no
OR
A.email = B.email
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.