【问题标题】:SELECT Columns FROM other Table but Should Return Multiple Rows从其他表中选择列,但应返回多行
【发布时间】:2015-12-13 03:54:12
【问题描述】:

我正在做一个小项目来销售我这样的桌子

sale_order

+----+------------+--------+--------------+-------------+----------+----------+
| 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  

提前致谢

【问题讨论】:

  • 您喜欢创建黑白关系表吗?
  • SO 1 来自哪里?我只是看不到数据集与结果集的对应关系。据推测,它没有,但是为什么要打扰呢?
  • 这是假的 1 应该替换任何销售订单 ID
  • 是的,我已经在表之间创建了关系

标签: mysql sql report


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多