我有幾個包含電影,演員和類別數據的相關表格。我試圖將每部演員的電影長度總結在一個特定的類別中。SQL:選擇一個子查詢的總和
這就是我要嘗試,包括一個類別ID子查詢的在我的結果的總和:
SELECT actor.actor_id, (SELECT SUM(length) from film WHERE category_id=14) total
FROM actor
JOIN film_actor USING(actor_id)
JOIN film USING(film_id)
JOIN film_category USING(film_id)
JOIN category USING(category_id)
GROUP BY actor.actor_id
ORDER BY total DESC
但是我total
列只包含所有空值。
此查詢的工作,但不包括誰有0分鐘的有價值的這一類電影的演員:在類別中屬於對外部連接的條款
SELECT actor.actor_id, SUM(film.length) as total
FROM actor
JOIN film_actor USING(actor_id)
JOIN film USING(film_id)
JOIN film_category USING(film_id)
JOIN category USING(category_id)
WHERE category_id = 14
GROUP BY actor.actor_id
嘗試改變你的使用語句到左連接,這就是爲什麼它不會包括與0連接。只是說明「連接」是內部連接。 – Reisclef