Mysql 在单列中使用多列结果联接表
我有两张桌子 国家表Mysql 在单列中使用多列结果联接表,mysql,sql,database,join,conditional-statements,Mysql,Sql,Database,Join,Conditional Statements,我有两张桌子 国家表 id name 1 Nepal 2 India 工资表 id Countryid termid amount 1 1 1 100 1 1 2 500 3 2 1 200 4 2 2 400 我想要结果 CountryName basicSalary allowance Nepal 100 500 Indi
id name
1 Nepal
2 India
工资表
id Countryid termid amount
1 1 1 100
1 1 2 500
3 2 1 200
4 2 2 400
我想要结果
CountryName basicSalary allowance
Nepal 100 500
India 200 400
这里第1项是基本工资,第2项是津贴,只需加入表格两次(使用别名)
只需连接表两次(使用别名)
您可以尝试下面的查询
SELECT c.name,
SUM(CASE WHEN s.termid = 1 THEN amount ELSE 0 END) basicSalary,
SUM(CASE WHEN s.termid = 2 THEN amount ELSE 0 END) allowance
FROM Country c
JOIN Salary s on c.id = s.Countryid
GROUP BY c.name;
希望这对您有所帮助。您可以尝试下面的查询
SELECT c.name,
SUM(CASE WHEN s.termid = 1 THEN amount ELSE 0 END) basicSalary,
SUM(CASE WHEN s.termid = 2 THEN amount ELSE 0 END) allowance
FROM Country c
JOIN Salary s on c.id = s.Countryid
GROUP BY c.name;
希望这对您有所帮助。是否将
term
只有1和2?是的,term有1和2@viki888加入薪资表两次,或者进行分组。在这种情况下,我如何进行此操作@jarlh@manoj,请看下面Viki888的答案。可能是最好的方法,将term
只有1和2吗?是的,term有1和2@viki888加入工资表两次,或者进行分组。在这种情况下,我怎么做@jarlh@manoj,请看下面Viki888的答案。也许这是最好的方法,