我從三個查詢中獲得了作業代碼,但我想將它們組合成一兩個。基本上,我正在檢查提供的電話號碼是否存在于表格聯系人或潛在客戶中,以及它是否作為輔助號碼存在于 customfieldsvalues 中(但并非所有潛在客戶都有自定義欄位值)。我正在使用基于 CodeIgniter 的 CRM 系統。
我想要做什么(不正確/假設的查詢):
SELECT * FROM contacts OR leads WHERE phonenumber = replace(X, '-', '')
OR leads.id = customvaluefields.relid AND cfields.fieldid = 41 AND cfields.value = X
表
table : contacts
------- ---------------- ----------------
| id | firstname | phonenumber |
------- ---------------- ----------------
| 1 | John | 214-444-1234 |
| 2 | Mary | 555-111-1234 |
------- ---------------- ----------------
table : leads
------- ----------- ---------------------
| id | name | phonenumber |
------- ----------- ---------------------
| 1 | John | 214-444-1234 |
| 2 | Mary | 555-111-1234 |
------- ----------- ---------------------
table : customvaluefields
------- ----------- ------------- -----------
| id | relid | fieldid | value |
------- ----------- ------------- -----------
| 1 | 1 | 41 | 222333444 |
| 2 | 1 | 20 | Management|
| 3 | 2 | 41 | 333444555 |
------- ----------- ------------- -----------
uj5u.com熱心網友回復:
如果我理解你想要做什么,也許 UNION ALL 會起作用。這是讓你開始的東西:
SELECT C.ID, C.FirstName, C.Phonenumber
FROM Contacts C
JOIN CustomValueField CVF
ON c.ID = CVF.RelID AND
CVF.ID = 41
AND REPLACE(Phonenumber,'-','') = cvf.Value
UNION ALL
SELECT L.ID, L.FirstName, L.Phonenumber
FROM Leads L
JOIN CustomValueField CVF
ON L.ID = CVF.RelID AND
CVF.ID = 41
AND REPLACE(Phonenumber,'-','') = cvf.Value
我在每個查詢中將聯系人和潛在客戶表加入到 CustomeValueField,然后將它們與每個查詢中的 WHERE 子句一起合并。我確信它不是 100% 正確滿足您的需要,但應該讓您找到解決方案。這里有更多資訊:https ://dev.mysql.com/doc/refman/8.0/en/union.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/416834.html
標籤:
上一篇:使用mysql根據排名分配獎品
