2017-06-19 80 views
0

我嘗試爲我的項目製作過濾器。我想了解如何在內部連接中使用數組值。例如,我有這樣的查詢。陣列的內部連接使用

SELECT Orders.OrderID, Employees.LastName, Employees.FirstName 
FROM Orders 
INNER JOIN Employees 
ON Orders.EmployeeID = Employees.EmployeeID; 

但我有多個EmployeeID s在數組中,我嘗試使我的查詢是這樣的。

SELECT Orders.OrderID, Employees.LastName, Employees.FirstName 
FROM Orders 
INNER JOIN Employees 
ON Orders.EmployeeID = Employees.1,2,3; 

這是我知道的錯誤的方式,但我真的不知道做出這個查詢的正確方法。

+0

加入所有員工,然後限制他們在'where'子句中。 'ON Orders.EmployeeID = Employees.EmployeeID where Orders.EmployeeID in(1,2,3)' – chris85

回答

0

沒有必要擔心,如果有任意數量的命令映射的員工ID的行會返回,如果存在多行,而只使用一個where in條款

SELECT Orders.OrderID, Employees.LastName, Employees.FirstName 
FROM Orders 
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID 
WHERE Employees.EmployeeID IN (1,2,3);` 
0

你可以這樣做,

SELECT Orders.OrderID, Employees.LastName, Employees.FirstName 
FROM Orders 
INNER JOIN Employees 
ON Orders.EmployeeID = Employees.EmployeeID where Employees.EmployeeID IN (1,2,3); 

內與員工ID加入將獲取兩個訂單,員工與員工ID條件的所有匹配的記錄,然後對where子句來獲取那些記錄員工ID是1,2,3。

0

你可以使用in運營商在on條款:

SELECT Orders.OrderID, Employees.LastName, Employees.FirstName 
FROM Orders 
INNER JOIN Employees 
ON Orders.EmployeeID = Employees.EmployeeID and Employees.EmployeeID in (1,2,3);