从表中获取值并在表2中添加值(如果是excist)

时间:2016-04-28 10:54:07

标签: sql oracle

我是SQL新手,我想知道这样的事情是否可行。

这可能是一个超级简单的解决方案,但我似乎无法解决它。我正在使用Oracle数据库。

Employee_Table
员工N 用户名
解决
epost

Computer_Table
employeeNr
ComputerNumber
ComputerUpdated

当我使用时

SELECT *
From Employee_Table,
     Computer_Table
WHERE Employee_Table.EmployeeNr = Computer_Table.EmployeeNr
  AND Employee_Table.username LIKE ('%SomeUsername%')

当我使用这个sqlstring时,我只会让用户使用计算机。我想得到所有用户和拥有一台用户的计算机。

现在是百万美元的问题。我需要做哪些修改?

1 个答案:

答案 0 :(得分:0)

永远不要在FROM子句中使用逗号。始终使用明确的JOIN

在这种情况下,您需要LEFT JOIN

SELECT *
FROM Employee_Table e LEFT JOIN
     Computer_Table c
     ON c.EmployeeNr = c.EmployeeNr
WHERE e.username LIKE '%SomeUsername%';

当您使用LEFT JOIN时,第一个表上的条件会转到WHERE子句。第二个表的条件在ON子句中。