我有 3 個子查詢,當它們獨立執行時,它們都回傳 3 行,其中包含所需的列和值。一旦我將它們全部放入 from 陳述句并全部選擇它們
SELECT *,
ROUND(Verbrecher / Buerger * 100, 1) AS Sicherheitsgrad
FROM
( SELECT name AS Dorf
FROM dorf
GROUP BY dorfnr
) AS Dorf,
( SELECT COUNT(*) AS Verbrecher
FROM bewohner
WHERE status LIKE 'boese'
GROUP BY dorfnr
) AS Verbrecher,
( SELECT COUNT(*) AS Buerger
FROM bewohner
GROUP BY dorfnr
) AS Buerger
這是所有三個子查詢分別獨立執行的 結果
這是 上面運行的結果片段
我希望它們連接在一起,并有三行水平排列的查詢。
不幸的是,這不是給定的結果。
我希望這在一定程度上是有道理的。
uj5u.com熱心網友回復:
也許你需要這個:
SELECT dorfnr, Dorf, Verbrecher, Buerger,
ROUND(Verbrecher / Buerger * 100, 1) AS Sicherheitsgrad
FROM ( SELECT dorfnr, name AS Dorf
FROM dorf
-- GROUP BY dorfnr
) AS Dorf
JOIN ( SELECT dorfnr, COUNT(*) AS Verbrecher
FROM bewohner
WHERE status LIKE 'boese'
GROUP BY dorfnr
) AS Verbrecher USING (dorfnr)
JOIN ( SELECT dorfnr, COUNT(*) AS Buerger
FROM bewohner
GROUP BY dorfnr
) AS Buerger USING (dorfnr)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/445198.html
下一篇:根據MySQL中的分數連接學生
