My first post here and I am desperate. Need this to complete the last 2 questions of my assignment.
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);
This is the code I wrote and it is outputting almost what I need. The problem in the assignment wants to display Employees or Guests that are from Winnipeg or London. My code gives me all the cities for each employee and guest. I know I need to filter for Winnipeg and London with something like WHERE CityName IN ('London','Winnipeg')
But I don’t know where it needs to go.
I also need to add that I cannot use JOIN
or AND
operators.
I know it might all sound confusing that is because it is to me so explaining my problem is not that simple. Thank you for the help.
Advertisement
Answer
there are some possibilies
Fro example
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');
or
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');
I also need to add that I cannot use JOIN or AND operators.
comma separated tables are another notation for CROSS JOIN, so that is a very stupid request
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');