使用INNER JOIN和LEFT JOIN进行MySQL查询

时间:2016-06-19 16:16:31

标签: mysql left-join inner-join

所以我有一个包含一些表的数据库。现在我想要一个从3个表中获取数据的查询。首先让我们看看数据库是什么

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

现在我想创建一个显示下一行的查询:

可乐(blikje 330ml) Aantal 2 minmaal 4

我四处搜索并在下面提出但它无法正常工作。它没有给出错误,只是一个空结果

$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";

在offcourse的情况下,$ offset和$ perPage正在代码的前面定义。

所以有人能告诉我哪里出错了吗?我应该改变什么来获得正确的结果?

1 个答案:

答案 0 :(得分:0)

查看您的架构和预期结果似乎需要此查询

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