我有两个表格命令产品和productsinstocks。这里是表结构:MySQL - 使用LEFT JOIN给出意想不到的结果
orderedproducts表:
+-----+---------+-----------+----------+--------------+
| id | orderid | productid | quantity | productgroup |
+-----+---------+-----------+----------+--------------+
| 117 | 1016186 | 265385 | 5 | Main |
| 118 | 1016186 | 407454 | 6 | Main |
| 119 | 1016186 | 975045 | 7 | Main |
| 120 | 1016186 | 975046 | 8 | Main |
+-----+---------+-----------+----------+--------------+
productsinstocks表:
+----+---------+-----------+----------+
| id | stockid | productid | quantity |
+----+---------+-----------+----------+
| 20 | 903958 | 265385 | 200 |
| 21 | 903958 | 407454 | 205 |
| 22 | 903958 | 975045 | 210 |
+----+---------+-----------+----------+
正如你看到的,股票只有三个型号的产品在orderedproducts表。我想加入这些表来实现以下目的:
+---------+-----------+---------+-----------+------------+
| orderid | productid | stockid | order_qty | stock_qty |
+---------+-----------+---------+-----------+------------+
| 1016186 | 265385 | 903958 | 5 | 200 |
| 1016186 | 407454 | 903958 | 6 | 205 |
| 1016186 | 975045 | 903958 | 7 | 210 |
| 1016186 | 975046 | 903958 | 8 | NULL |
+---------+-----------+---------+-----------+------------+
我用下面的查询:
SELECT op.orderid, op.productid, plo.stockid, op.quantity order_qty, plo.quantity stock_qty FROM orderedproducts op
LEFT JOIN productsinstocks plo
ON op.productid=plo.productid
WHERE op.orderid=1016186
AND plo.stockid=903958
,但它给了我下面的结果:
+---------+-----------+---------+-----------+------------+
| orderid | productid | stockid | order_qty | stock_qty |
+---------+-----------+---------+-----------+------------+
| 1016186 | 265385 | 903958 | 5 | 200 |
| 1016186 | 407454 | 903958 | 6 | 205 |
| 1016186 | 975045 | 903958 | 7 | 210 |
+---------+-----------+---------+-----------+------------+
我不我知道我错过了什么。
这仍然会生成相同的结果集。 – MehdiB
您确定您复制了我的确切查询吗?它应该工作AFAIK。 –
是的,我复制并粘贴了你发送的内容。 – MehdiB