mysql - 从其他表中选择列但应返回多行

标签 mysql sql report

我正在处理一个小型项目,用于销售我的一些像这样的 table

促销订单

+----+------------+--------+--------------+-------------+----------+----------+
| so | date       | po_num | structure_id | customer_id | quantity | rate     |
+----+------------+--------+--------------+-------------+----------+----------+
|  2 | 2015-01-09 | 23     |            1 |          11 |     1234 |   0.0000 |
|  3 | 2015-09-02 | 1234   |            1 |          12 |     1000 |   0.0000 |
| 12 | 2015-09-01 | 1234   |            3 |          12 |   100000 |  12.0000 |
| 13 | 2015-09-01 | 232    |            4 |          11 |     1000 | 123.0000 |
| 14 | 2015-09-01 | 1212   |            4 |          12 |    10000 | 123.0000 |
| 15 | 2015-11-04 | 3424   |            1 |          11 |     2555 |   0.0000 |
| 16 | 2015-11-04 | 343    |            2 |          11 |   233333 |   0.0000 |
| 17 | 2015-12-02 | 12345  |            3 |          13 |    10000 |   0.0000 |
+----+------------+--------+--------------+-------------+----------+----------+

结构

+----+------------------+
| id | job_name         |
+----+------------------+
|  4 | ketchup          |
|  3 | bubble           |
|  2 | masala           |
|  1 | xyz              |
+----+------------------+

客户

+-------------+-------------------------------+
| customer_id | customer_name                 |
+-------------+-------------------------------+
|          11 | customer 1                    |
|          12 | xyz                           |
|          13 | abc                           |
+-------------+-------------------------------+

调度

+----+----+------------+-----------+
| id | so | date       | delivered |
+----+----+------------+-----------+
|  1 |  2 | 2015-09-02 |    123.00 |
|  2 | 12 | 2015-09-02 |    203.00 |
|  3 | 12 | 2015-09-17 |    213.00 |
|  4 |  2 | 2015-05-11 |    123.00 |
|  5 | 14 | 2015-11-06 |    233.00 |
+----+----+------------+-----------+

我要创建一份报告,显示总订单数量以及相关的交货量和余额。使用 PHP C# 或其他编程语言,我可以通过两次请求 mysql 服务器第一次获取订单

SELECT
  so.po_num,
  so.date,
  c.customer_name,
  st.job_name,
  so.rate,
  so.quantity
FROM
  sale_order AS so
JOIN
  structure AS st ON so.structure_id = st.id
JOIN
  customer AS c ON so.customer_id = c.customer_id

然后用这个ID到达那里交付

SELECT
  d.date,
  d.id AS reference,
  d.net_weight AS deliverd
FROM
  dispatch AS d
WHERE
  d.so = so.id

但我想用一个查询生成所有内容,无论如何可以直接使用 mysql 查询来实现此结果

期望结果:有或没有-

SO #  | DATE      | JOB NAME  | RATE  | ORDER QUANTITY  | D DATE    | REFREENCE  |  D QUANTITY  | BALANCE
1       2/2/2015    ABC         XXX     XXX               4/2/2015    D-12          XX            XX
 -        -           -           -       -               5/2/2015    D-22          XX            XX
 -        -           -           -       -               7/2/2015    D-50          XX            XX  
2       2/2/2015    ABC         XXX     XXX               4/2/2015    D-14          XX            XX
 -        -           -           -       -               5/2/2015    D-26          XX            XX
 -        -           -           -       -               7/2/2015    D-58          XX            XX  

提前致谢

最佳答案

@humaira 我认为不可能在一个查询中完成所有操作。可能你正在写两部分。

关于mysql - 从其他表中选择列但应返回多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34154469/

相关文章:

database - Sql 或 Reports 的验收测试

按任务组过滤可用的 Gradle 任务

mysql - 子查询返回超过 1 行,但我希望它返回

php - 提交表单时,列计数与第 1 行的值计数不匹配

python /MySQL : Query executes but nothing happens?

php - MySQL 数据库迁移失败

mysql调用程序到另一个程序中

MySQL 查询给出具有不同值组合的结果计数

sql - mysql更新单元格内容问题

mysql - 按时间间隔生成sql报告: hour