[英]Results from MYSQL database based, not one, but on results from a few tables
因此,在這里,我需要查看不是基於數據庫而是基於一些表的結果的MYSQL數據庫的一些結果。
表說明:
Metaexplanation:
Tablename
Row1,Row2,Row3....Row(N)
Tables:
---------------
|table toy |
------------------------------
|toy_id | name | description |
------------------------------
--------------------
|table owned_toy |
----------------------------
| owner | toy_id |
----------------------------
--------------------
|table toy_expansions |
-------------------------------
| expansion | toy_id |
-------------------------------
我創建了一個查詢來識別未分配所有者的玩具
SELECT DISTINCT * from toy WHERE NOT EXISTS (SELECT * FROM ownedtoy WHERE owned_toy.toy_id = toy.id);
那行得通,我能夠確定沒有所有者的事物。
現在,為了使事情變得更有趣,我試圖找到一種方法來發現我在上面的查詢中識別出的每個玩具有多少種擴展。
我可以使用以下方法計算玩具的展開總數:
Select COUNT(expansion) from toy_expansions;
但是,我需要的是查看每個尚未擁有所有者的DISTINCT玩具的展開總數,並且需要對其進行排序,這樣我才能看到第一個查詢的結果與一列“展開數目”的組合列出了每個沒有所有者的玩具的擴展數量
我希望能夠通過將原始查詢與這樣的語句結合來添加結果:
Select COUNT(expansion) as "Number of expansions" from toy_expansions
同樣只是為了使其更加困難,我希望能夠在一個查詢中執行它而無需創建額外的表等,即無需對數據庫本身進行任何更改。
有任何想法嗎 ?
SELECT t.name, COUNT(te.expansion) AS NumberOfExpansions
FROM toy t
LEFT JOIN toy_expansions te
ON t.id = te.toy_id
LEFT JOIN owned_toy ot
ON t.id = ot.toy_id
WHERE ot.toy_id IS NULL
GROUP BY t.name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.