这个sql查询是否正确?
问题描述:
使用下面 http://i.imgur.com/rIMgFZC.png这个sql查询是否正确?
如何显示,通过女员工谁是在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
时,distinct选项必须具有相同的列数和类型。
删除第二个查询中不必要的隐含join
。
您使用了错误的引号,插入了单引号。
您的查询不会工作,因为当您将查询与union/union全部组合在一起时,它必须具有相同数量的列..从选择联盟中删除商店 – TheGameiswar