我想要統計一個表中的記錄數。 該表被稱爲從屬關係,只有4列(其中2個是外鍵)更好/更有效的方式來寫這個查詢
我想統計附屬列爲0且business_id與特定account_email相關的記錄數。
我知道如何使用IN關鍵字執行此查詢,但我想知道是否有更好或更有效的方法來執行此操作。
這是版本的查詢:
SELECT COUNT(1) FROM affiliations
WHERE business_id IN (
SELECT business_id
FROM affiliations
WHERE account_email = '[email protected]'
) AND affiliated = 0
我知道我大概可以用EXISTS替換此:
SELECT COUNT(1) FROM affiliations
WHERE EXISTS (
SELECT 1 FROM affiliations
WHERE account_email = '[email protected]'
) AND affiliated = 0
將與EXISTS工作的聲明?正如以前所問,是否有更好的方法來做到這一點?
提前致謝!
一些額外的信息: business_id不在此表中是唯一的。數據庫中的帳戶和業務之間存在多對多關係,並且此表包含相關的account_emails和business_ids。我選擇了ACCOUNT_EMAIL,並希望得到所有的帳戶是關係到business_ids,再算上 –
請張貼也與每個這些企業的賬戶數量的EXPLAIN分析這個查詢 – hd1
的輸出如何計算business_id如何對於account_email ='[email protected]'和affiliated = 0 – faisal