使用下表
http://i.imgur.com/rIMgFZC.png

如何显示处于3级,4级和5级(不是1级或2级)的女员工处理的玩具的名称以及商店邮政编码为10005的所有玩具名称的列表。请使用联合编写。

SELECT Toy_name
FROM Toy T
INNER  JOIN hire_transaction H on T.toy_id = H.toy_id
INNER  JOIN Employee E on H.E_id = E.E_id
WHERE E_Sex = ‘F’
AND E_Level between ‘3’ and ‘5’
UNION
SELECT Toy_name, Store_id
FROM Toy T, Store S
WHERE T.Store_ID IN(
SELECT Store_ID
FROM STORE S
WHERE Store_Postcode = ‘10005’);


这是我的尝试。我对么?

最佳答案

SELECT Toy_name
FROM Toy T
INNER  JOIN hire_transaction H on T.toy_id = H.toy_id
INNER  JOIN Employee E on H.E_id = E.E_id
WHERE E_Sex = 'F'
AND E_Level between 3 and 5
UNION

SELECT Toy_name
FROM Toy T
WHERE T.Store_ID IN(
SELECT Store_ID
FROM STORE S
WHERE Store_Postcode = '10005');


使用unions时,不同的选择必须具有相同数量和类型的列。

在第二个查询中删除了不必要的隐式join

您使用了错误的引号,并插入了单引号。

关于mysql - 这个SQL查询正确吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38550276/

10-12 14:26
查看更多