Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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中使用另一个表的列填充列_Mysql_Database_Join_Database Design_Multiple Columns - Fatal编程技术网

如何在mysql中使用另一个表的列填充列

如何在mysql中使用另一个表的列填充列,mysql,database,join,database-design,multiple-columns,Mysql,Database,Join,Database Design,Multiple Columns,我有一张名为tbl_雇主的桌子 | id | employer | emp_type | | 1 | aaa | GOVERNMENT | | 2 | bbb | PRIVATE | 我想把它和这个表tbl_汇款连接起来,因为tbl_汇款的数据是 |RemitNo| id | employer | emp_cat |Amt_Remit| AP_From | AP_To | | 1 | 1 | aaa | GOVER

我有一张名为tbl_雇主的桌子

|  id  | employer |  emp_type  |
|   1  |   aaa    | GOVERNMENT |
|   2  |   bbb    |  PRIVATE   |
我想把它和这个表tbl_汇款连接起来,因为tbl_汇款的数据是

|RemitNo| id | employer |  emp_cat   |Amt_Remit|  AP_From |   AP_To  |
|  1    |  1 |   aaa    | GOVERNMENT |  20.00  |01/01/2016|01/31/2016|
|  2    |  1 |   aaa    | GOVERNMENT |  10.00  |02/01/2016|02/29/2016|
|  3    |  1 |   aaa    |            |  10.00  |03/01/2016|03/31/2016|
|  4    |  2 |   bbb    |  PRIVATE   |  50.00  |01/01/2016|01/31/2016|
|  5    |  2 |   bbb    |  PRIVATE   |  50.00  |02/01/2016|02/29/2016|
|  6    |  2 |   bbb    |            |  50.00  |03/01/2016|03/31/2016|
我想根据tbl_雇主填写tbl_汇款中缺失的数据

|RemitNo| id | employer |  emp_cat   |Amt_Remit|  AP_From |   AP_To  |
|  1    |  1 |   aaa    | GOVERNMENT |  20.00  |01/01/2016|01/31/2016|
|  2    |  1 |   aaa    | GOVERNMENT |  10.00  |02/01/2016|02/29/2016|
|  3    |  1 |   aaa    | GOVERNMENT |  10.00  |03/01/2016|03/31/2016|
|  4    |  2 |   bbb    |  PRIVATE   |  50.00  |01/01/2016|01/31/2016|
|  5    |  2 |   bbb    |  PRIVATE   |  50.00  |02/01/2016|02/29/2016|
|  6    |  2 |   bbb    |  PRIVATE   |  50.00  |03/01/2016|03/31/2016|
我使用了Join语句,但失败了

SELECT r.RemitNo
     , r.id
     , r.employer
     , (SELECT e.emp_type 
          FROM tbl_employer e
         WHERE e.ID = r.ID) emp_cat
     , amt_remit
     , ap_from
     , ap_to 
  FROM tbl_remit r
  JOIN tbl_employer e 
    ON r.ID = e.ID
这可能有助于:

UPDATE tbl_remit AS r
JOIN tbl_employer AS e ON e.employer=r.employer    
SET r.emp_cat=e.emp_type
请记住,如果表中有许多记录,则可能需要在表中的雇主字段上添加索引。我不能100%确定r.id是否等于e.id,是否可以用于连接,但如果可以,则可以使用此查询:

UPDATE tbl_remit AS r
JOIN tbl_employer AS e ON e.id=r.id
SET r.emp_cat=e.emp_type
您在问题中失败的查询应如下所示:

SELECT r.RemitNo
 , r.id
 , r.employer
 , e.emp_type
 , r.amt_remit
 , r.ap_from
 , r.ap_to 
FROM tbl_remit r
JOIN tbl_employer e 
ON r.ID = e.ID
您需要更新查询

更新tbl\U汇款设置emp\U cat=选择tbl\U雇主。emp_类型来自 tbl_雇主,其中tbl_雇主。id=tbl\U汇款id


您需要更新查询,因为您要修改表。您需要更新查询。。。更新tbl\U汇款设置emp\U cat=选择tbl\U雇主。tbl_雇主提供的emp_类型,其中tbl_雇主。id=tbl_remote.id不完全-在mysql中,您必须在设置之前加入,如果您不提供where子句,mysql将抛出警告。很抱歉,已修复此错误。谢谢是的,它会抛出警告,但会执行查询。感谢您提供的所有解决方案。我想创建另一个表来合并它,我从来没有想过只更新tbl_汇款。我将阅读更多关于mysql查询的内容。和索引。再次感谢。使用上次选择查询的正确版本更新了我的答案