Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL select语句缺少一些字段_Mysql - Fatal编程技术网

MySQL select语句缺少一些字段

MySQL select语句缺少一些字段,mysql,Mysql,下面的语句用于从MySQL数据库中选择一些字段 select finance_budget_issue.budget_date, SUM(finance_budget_issue.amount) AS amount, finance_vote.office_id as vote_office_id, finance_office.office_head as head, finance_office.office_name AS office_name, finance_budg

下面的语句用于从MySQL数据库中选择一些字段

select finance_budget_issue.budget_date, SUM(finance_budget_issue.amount) AS amount, finance_vote.office_id as vote_office_id, finance_office.office_head as head,
    finance_office.office_name AS office_name,
    finance_budget.ref_no, finance_budget_issue.view_status, tbl_signature.office_head as sign_office_head, tbl_signature.name AS name, 
    tbl_signature.post AS post, tbl_signature.sign_id
   from finance_budget_issue
    inner join finance_budget on finance_budget.budget_id=finance_budget_issue.budget_id
  left join finance_vote on finance_budget_issue.vote_id=finance_vote.vote_id
  left  join finance_vote_description on finance_vote.description=finance_vote_description.vote_description_id
  left join finance_office on finance_budget_issue.office=finance_office.office_id
  left join tbl_signature on finance_office.office_id=tbl_signature.office_id
该语句工作正常,但没有显示以下字段

tbl_signature.office_head as sign_office_head, 
tbl_signature.name AS name, 
tbl_signature.post AS post
可能出了什么问题?我想我使用了不正确的连接。有人能帮忙吗

下表:

财务处

+----+-----------+-------------+------+
| id | office_id | office_name | head |
+----+-----------+-------------+------+
|  1 |        48 | A           | SS   |
|  2 |        69 | B           | VV   |
+----+-----------+-------------+------+
财政部投票

+---------+-----------+----------------+
| vote_id | office_id |      vote      |
+---------+-----------+----------------+
|       1 |        48 | 320-1-2-1-1001 |
|       2 |        48 | 320-2-2-2-2002 |
|       3 |        69 | 319-1-2-1-1001 |
|       4 |        69 | 319-1-2-2-1102 |
|       5 |        30 | 318-1-1-2-1101 |
+---------+-----------+----------------+
待签字

+---------+-----------+---------+------------+-------------+
| sign_id | office_id |  name   |    post    | office_head |
+---------+-----------+---------+------------+-------------+
|       1 |        48 | Noel    | Accountant | Manager     |
|       2 |        69 | Jhon    | Accountant | Manager     |
|       3 |        30 | Micheal | Accountant | Manager     |
+---------+-----------+---------+------------+-------------+
财政预算

+-----------+--------+-------------+
| budget_id | ref_no | budget_date |
+-----------+--------+-------------+
|         1 | Acc/01 | 2020-01-20  |
|         2 | Acc/02 | 2020-01-22  |
+-----------+--------+-------------+
财政预算问题

+----+-----------+--------+---------------+-----------------+
| id | budget_id | amount | budget_status | transfer_status |
+----+-----------+--------+---------------+-----------------+
|  1 |         1 |  75000 | issues        | Approved        |
|  2 |         1 |  22000 | issues        | Approved        |
|  3 |         2 |  65000 | issues        | Approved        |
+----+-----------+--------+---------------+-----------------+
期望输出

+--------+----------------+------+--------+------------------+------+------------+
| amount | vote_office_id | head | ref_no | sign_office_head | name |    post    |
+--------+----------------+------+--------+------------------+------+------------+
|  75000 |             48 | SS   | Acc/01 | Manager          | Noel | Accountant |
|  22000 |             48 | SS   | Acc/01 | Manager          | Noel | Accountant |
|  65000 |             69 | VV   | Acc/02 | Manager          | Jhon | Accountant |
+--------+----------------+------+--------+------------------+------+------------+
生成的输出(不正确)


这更容易阅读:

SELECT i.budget_date
     , SUM(i.amount) amount
     , v.office_id vote_office_id
     , o.office_head head
     , o.office_name 
     , b.ref_no
     , i.view_status
     , s.office_head sign_office_head
     , s.name 
     , s.post 
     , s.sign_id
  FROM finance_budget_issue i
  JOIN finance_budget b
    ON b.budget_id = i.budget_id
  LEFT 
  JOIN finance_vote v 
    ON v.vote_id = i.vote_id
  LEFT  
  JOIN finance_vote_description d
    ON d.vote_description_id = v.description 
  LEFT 
  JOIN finance_office o 
    ON i.office = o.office_id
  LEFT 
  JOIN tbl_signature s
    ON s.office_id = o.office_id 
您有一个聚合函数(和非聚合列),但没有GROUPBY子句;那是行不通的。您有一个左联接表,从中不选择任何列;那是毫无意义的


为了进一步的帮助,请参见

更改
左加入财务办公室的tbl\U签名。办公室id=tbl\U签名。办公室id
左加入财务投票办公室的tbl\U签名。办公室id=tbl\U签名。办公室id
您不能加入财务投票而改为左加入财务办公室的tbl\U签名。办公室id=tbl\U签名。办公室id应为左加入财务投票上的tbl_签名。办公室id=tbl_签名。办公室id或类似签名。不在pc上,因此无法执行示例@Luuk。请。请参阅我的编辑。没有名为finance\u vote\u office@BrownCow的表。请。查看我的编辑
SELECT i.budget_date
     , SUM(i.amount) amount
     , v.office_id vote_office_id
     , o.office_head head
     , o.office_name 
     , b.ref_no
     , i.view_status
     , s.office_head sign_office_head
     , s.name 
     , s.post 
     , s.sign_id
  FROM finance_budget_issue i
  JOIN finance_budget b
    ON b.budget_id = i.budget_id
  LEFT 
  JOIN finance_vote v 
    ON v.vote_id = i.vote_id
  LEFT  
  JOIN finance_vote_description d
    ON d.vote_description_id = v.description 
  LEFT 
  JOIN finance_office o 
    ON i.office = o.office_id
  LEFT 
  JOIN tbl_signature s
    ON s.office_id = o.office_id