DutchEcho DutchEcho - 5 months ago 24
MySQL Question

MySQL query with INNER JOIN and LEFT JOIN

So i have a database with some tables. Now i want a query that gets data from 3 tables. First lets see what the databases are

omschrijvingVoorraad
-ID 1
-userID 1
-omschrijvingID 6
-min 4

omschrijving
-ID 6
-omschrijving Cola (blikje 330ml)

voorraad
-ID 20
-userID 1
-omschrijvingID 6
-aantal 2


Now i want to make a query that will show the next line:

Cola (blikje 330ml) Aantal 2 minmaal 4

I searched around and came up with below but it is not working. It doesn't give an error but just an empty result

$queryOm="SELECT omschrijvingVoorraad.ID, omschrijvingID, omschrijving, vAantal, min
FROM omschrijvingVoorraad
LEFT JOIN omschrijving ON omschrijving.ID = omschrijvingVoorraad.omschrijvingID
INNER JOIN ( SELECT omschrijvingID vid, SUM( aantal ) vAantal
FROM voorraad WHERE userID='$userID' ) p ON vid = omschrijvingVoorraad.omschrijvingID
WHERE userID='$userID'
LIMIT $offset, $perPage";


Where offcourse the $offset and $perPage are being defined earlier in the code.

So can anyone tell me where I went wrong? What should I change to get the correct result?

Answer

Looking to your schema and your expected result seem you need this query

select a.ID, a.omschrijvingID, b.omschrijving, sum(c.aantal), a.min
from omschrijvingVoorraad as a
inner join omschrijving as b on a.omschrijvingID = b.ID
inner join voorraad as c on a.omschrijvingID = c.omschrijvingID
group by a.ID, a.omschrijvingID, b.omschrijving, a.min