Mysql
加入具有唯一數據的多個表
我有 4 張桌子。即
crm_entry(id, prefix, firstname, lastname)
,和crm_phone(id, crm_id, extension,value)
_sale_order(id, crm_id)``purchase_order(id, crm_id)
我想要這樣的桌子。。
| 編號 | 前綴 | 名字 | 姓氏 | 聯繫方式 | 銷售(計數)|購買(計數)|
為了獲取這樣的數據,我嘗試了內部聯接並左聯接這樣做。但是當銷售計數超過一個時.. 聯繫人沒有作為銷售(計數)次在行中重複。購買計數相同。我使用的查詢寫在下面:
select crm_entry.id, crm_entry.prefix, crm_entry.firstname, crm_entry.lastname, group_concate(concat(crm_phone.extension,'-',crm_phone.value)), count(sale_order.id), count(pur_order.id) from crm_entry inner join crm_phone on crm_entry.id = crm_phone.crm_id inner join sale_order on crm_entry.id = sale_order.crm_id inner join pur_order on crm_entry.id = pur_order.crm_id group by crm_entry.id
我只想要一次聯繫電話(聯繫人可以是多個但不能重複)。我該怎麼做?
好的,終於我找到了解決這個問題的中途。
我為聯繫電話、銷售訂單和採購訂單以及 crm_entry 創建了視圖,然後在我的儲存過程中使用了這些視圖和內部連接。這裡的查詢是:
SELECT view_crm_entry_phone.*, view_crm_entry_sale.sales, view_crm_entry_purchase.purchase FROM view_crm_entry_phone INNER JOIN view_crm_entry_sale ON view_crm_entry_sale.id = view_crm_entry_phone.id INNER JOIN view_crm_entry_purchase ON view_crm_entry_purchase.id = view_crm_entry_phone.id