Fil*_*son 4 sql sql-server teradata
我有两张桌子(User和Salary).我想做一个left join从User到Salary.对于每个用户,我想要他们的名字和工资.如果他们没有工资,那么该领域可以留空.到目前为止,我们需要的是左连接.但我只想要每个用户一行.由于某些缺陷,一个用户可以有几个工资(见表薪水).我只想要每个用户一行,可以随机选择(或前1).我怎么做?预期的输出显示在底部.
用户表:
User Name
1 Adam
2 Al
3 Fred
Run Code Online (Sandbox Code Playgroud)
薪资表
User Salary
1 1000
2 2000
2 2000
Run Code Online (Sandbox Code Playgroud)
预期表格:
User Name Salary
1 Adam 1000
2 Al 2000
3 Fred null
Run Code Online (Sandbox Code Playgroud)
改变User到Userid如User在SQL中的保留字
SELECT u.Userid, u.Name, MAX(S.Salary)
FROM Usertable u
LEFT JOIN Salarytable s ON u.Userid = s.userid
GROUP BY u.userid, u.name
Run Code Online (Sandbox Code Playgroud)
SQL小提琴:http://sqlfiddle.com/#!6/ce4a8/1/0
试试这个:
select U.User, U.Name, min(S.Salary)
from UserTable U
left join SalaryTable S on S.User = U.User
group by U.User, U.Name
Run Code Online (Sandbox Code Playgroud)