MySQL 使用 INNER JOIN 和 LEFT JOIN 查询
MySQL query with INNER JOIN and LEFT 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) 安塔尔 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";
在代码的前面定义了 $offset 和 $perPage。
所以谁能告诉我哪里出错了?我应该更改什么以获得正确的结果?
查看您的架构和预期结果,您似乎需要此查询
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
所以我有一个包含一些表的数据库。现在我想要一个从 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) 安塔尔 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";
在代码的前面定义了 $offset 和 $perPage。
所以谁能告诉我哪里出错了?我应该更改什么以获得正确的结果?
查看您的架构和预期结果,您似乎需要此查询
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