如何在mysql中使用另一个表的列填充列
我有一张名为tbl_雇主的桌子如何在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
| 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查询的内容。和索引。再次感谢。使用上次选择查询的正确版本更新了我的答案