I’m finding trouble finding a similar example to what I’m trying to achieve. I have 3 tables. From one table I want to get the linking ID number. From another table I want to find the same ID’s and add up another column of numbers in that table where the ID number from the 1st table matches. Then on the 3rd table, which is text, I want to group all the text together where the ID matches the main ID number… and return all this in 1 go. My diagram should show what I mean:

So have 2 queries that will on their own return part the results, but Im struggling to build it into 1 single query.
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
The 77 and 937 for ticket ID 3 have been added up correctly!!

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
The messages are joined together correctly.

I’ve tried some concatenation on messages, selects within selects, different methods to group by, a couple of sums etc.. but just can’t seem to get a result where by the I’m getting the results back correctly with both queries as 1 single query. Either the joined numbers from “charge_time” are very wrong and don’t match any resemblance to anything or I end up with hundreds of “message” and strange numbers on the “charge_time”
FYI.. If I try this, I get “Sub query returned more than 1 row” but it’s what I thought I should be doing.
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
If you really need to do that with a single query, the solution is to do a subquery in one of the jointures.