我很難找到一個類似的例子,我試圖實現。我有3張桌子。從一張桌子我想獲得鏈接ID號碼。從另一張表中我想找到相同的ID,並在該表中添加另一列數字,其中第一個表的ID號匹配。然後,在第三張表格上,我要將所有文字分組在一起,其中ID與主ID號碼相匹配......並將所有這一切返回到1路。我的圖表應該說明我的意思:在mysql查詢中進行多重分組。 GROUP_CONCAT?通過...分組?內部連接?我哪裏錯了?
所以有2點的查詢會自行返回部分的結果,但是我努力將其建成1個單查詢。
SELECT ticket_charges.ticket_id
, sum(ticket_charges.charge_time) AS Seconds
FROM
ticket_charges
LEFT OUTER JOIN tickets
ON ticket_charges.ticket_id = tickets.id
GROUP BY
ticket_charges.ticket_id
, tickets.id
門票ID 3的77和937已經正確添加!
SELECT tickets.id AS `Ticket Number`
, left(tickets_messages.message, 500) AS `Ticket Message`
FROM
tickets
INNER JOIN tickets_messages
ON tickets.id = tickets_messages.id
GROUP BY
tickets_messages.ticket_id
, tickets.id
的消息被正確地接合在一起。
我試過上的消息有些級聯,選擇範圍內進行選擇,不同的方法來通過組,一對夫婦的款項等..但似乎仍不能由我」得到的結果,其中m將這兩個查詢作爲單個查詢正確返回結果。來自「charge_time」的加入的數字是非常錯誤的,並且不匹配任何類似的東西,或者我最終在「charge_time」上產生了數百個「消息」和奇怪的數字。如果我嘗試這樣做,我得到「子查詢返回超過1行」,但這是我認爲我應該做的。
SELECT ticket_charges.ticket_id
, sum(ticket_charges.charge_time) AS Seconds
FROM
ticket_charges
LEFT OUTER JOIN tickets
ON ticket_charges.ticket_id = tickets.id
Where (SELECT left(tickets_messages.message, 500)
FROM
tickets
INNER JOIN tickets_messages
ON tickets.id = tickets_messages.id
GROUP BY
tickets.id)
GROUP BY
ticket_charges.ticket_id
, tickets.id
啊哈!謝謝回覆!!好吧..這是有道理的,除了我從那裏受到一個小問題,這幾乎是我見過的其他方式我試過的問題。而不是獲取單獨的行(像我的例子「我想返回的結果」在我的圖像頂部,如果這樣的話)..我實際上得到的是1行,其中所有的tc.charge_time被加起來爲1大數。如果我在tc.charge_time周圍刪除了SUM,那麼我得到的是單獨的行,並且在最後很好地將這些消息連接起來。你有什麼建議如何總結剩餘的tc.charge_time?謝謝 – Will
回答更新,我的確忘記了最後的'GROUP BY' –
天才!完美的作品!謝謝。 – Will