【发布时间】:2021-07-12 18:23:21
【问题描述】:
我有一种特殊情况,我必须以特定顺序从两个表中选择特定列。以下是供应商的表格
| vid | company | mno | phone |
|---|---|---|---|
| 1 | Xoxoxo | MTN | 2459999999 |
| 2 | Vovovo | MTN | 2459998888 |
| 3 | Yrewmi | Vodafone | 2459997777 |
这是 order_content 表。
| oid | vendor_id | amount |
|---|---|---|
| 2 | 2 | 2 |
| 2 | 1 | 4 |
| 2 | 1 | 7 |
| 3 | 1 | 1 |
我想为特定的 ordercontent.oid 选择 vendor.company、vendor.mno、SUM(order_content.amount)、vendor.phone,只选择涉及的供应商。我想从供应商表中获取供应商详细信息并总结特定订单的金额。假设订单 2 是 old = 2。
SELECT DISTINCT vendor.company AS customerName, vendor.mno, SUM(orders_content.price) AS amount
FROM orders_content, vendor
WHERE orders_content.oid = 2
GROUP BY orders_content.oid;
我期待的结果
| customerName | mno | amount | phone | description | reference |
|---|---|---|---|---|---|
| Vooxoo | MTN | 2 | 2459998888 | orders | 154013949 |
| Xoxoxo | MTN | 11 | 2459999999 | orders | 78793949 |
【问题讨论】:
-
您尚未指定两个表之间的关系,因此您将获得两个表的完整叉积。你应该使用 ANSI JOIN 语法,这很难忘记。
-
由于订单有多个供应商,您希望结果中的哪一个?
-
你不能指望同时得到不同供应商的同时得到同一个订单的SUM!我在这里看到的最好的,除了金额的总和之外,您还可以获得供应商的数量。
-
请发布预期结果。
-
也许您希望
GROUP BY orders_content.oid, vendor.vid获得每个供应商的单独总计?
标签: mysql