我在這里的第一篇文章,我很絕望。需要這個來完成我作業的最后 2 個問題。
SELECT "Employee" AS PersonType,
EmployeeFirstName AS FirstName,
EmployeeLastName AS LastName,
CityName
FROM employee, cities
WHERE CityName IN (SELECT CityName WHERE employee.CityID = cities.CityID)
UNION
SELECT "Guest" AS PersonType,
GuestFirstName AS FirstName,
GuestLastName AS LastName,
CityName
FROM guest, cities
WHERE CityName IN (SELECT CityName WHERE guest.CityID = cities.CityID);
這是我寫的代碼,它輸出的幾乎是我需要的。作業中的問題想要顯示來自溫尼伯或倫敦的員工或客人。我的代碼為我提供了每位員工和客人的所有城市。我知道我需要用類似的東西過濾溫尼伯和倫敦,WHERE CityName IN ('London','Winnipeg')但我不知道它需要去哪里。
我還需要補充一點,我不能使用JOIN或AND運算子。
我知道這聽起來可能令人困惑,因為對我來說,解釋我的問題并不那么簡單。感謝您的幫助。
uj5u.com熱心網友回復:
有一些可能性
例如
SELECT
"Employee" AS PersonType
, e.EmployeeFirstName AS FirstName
, e.EmployeeLastName AS LastName
, c.CityName
FROM employee e INNER JOIN cities c ON e.CityID = c.CityID
WHERE c.CityName IN ('London','Winnipeg')
UNION
SELECT
"Guest" AS PersonType
, g.GuestFirstName AS FirstName
, g.GuestLastName AS LastName
, c.CityName
FROM guest g INNER JOIN cities c ON g.CityID = c.CityID
WHERE g.CityName IN ('London','Winnipeg');
或者
SELECT * FROM
(SELECT
"Employee" AS PersonType
, e.EmployeeFirstName AS FirstName
, e.EmployeeLastName AS LastName
, c.CityName
FROM employee e INNER JOIN cities c ON e.CityID = c.CityID
UNION
SELECT
"Guest" AS PersonType
, g.GuestFirstName AS FirstName
, g.GuestLastName AS LastName
, c.CityName
FROM guest g INNER JOIN cities c ON g.CityID = c.CityID) t1
WHERE CityName IN ('London','Winnipe
g');
我還需要補充一點,我不能使用 JOIN 或 AND 運算子。
逗號分隔表是 CROSS JOIN 的另一種表示法,所以這是一個非常愚蠢的請求
SELECT * FROM
(SELECT
"Employee" AS PersonType
, e.EmployeeFirstName AS FirstName
, e.EmployeeLastName AS LastName
, c.CityName
FROM employee e, cities c
where e.CityID = c.CityID
UNION
SELECT
"Guest" AS PersonType
, g.GuestFirstName AS FirstName
, g.GuestLastName AS LastName
, c.CityName
FROM guest g ,cities c WHERE g.CityID = c.CityID) t1
WHERE CityName IN ('London','Winnipeg');
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/322111.html
上一篇:使用Go安全地執行資料庫遷移
