假設我的模型包含2個表格:個人和地址。一個人可以有O個,一個或多個地址。我試圖執行一個查詢,列出所有人,幷包括他們分別擁有的地址數量。這裏是2個查詢,我要做到這一點:加入vs子查詢來計算嵌套對象
SELECT
persons.*,
count(addresses.id) AS number_of_addresses
FROM `persons`
LEFT JOIN addresses ON persons.id = addresses.person_id
GROUP BY persons.id
和
SELECT
persons.*,
(SELECT COUNT(*)
FROM addresses
WHERE addresses.person_id = persons.id) AS number_of_addresses
FROM `persons`
,我想知道,如果一個比其他在性能方面更好。
這是什麼'cube_models'表,爲什麼它只出現在第二個查詢中?第二個查詢使用相關的子查詢,它通常傾向於比使用聯接的類似查詢慢。 –
我相信第一個會更快,但它們非常相似。只需在兩者上運行執行計劃並查看差異。我懷疑有沒有更好的辦法。 – sagi
我修復了cube_models,壞的複製/粘貼 – TrexXx