我是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时,我只会让用户使用计算机。我想得到所有用户和拥有一台用户的计算机。
现在是百万美元的问题。我需要做哪些修改?
答案 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
子句中。