是的,这是一个家庭作业问题,但我正在努力做到这一点,我不是要求你为我做这件事,只是指出我正确的方向! :)
所以我有一组关于SQL IN
子查询的问题,虽然我理解它的作用但是我在这些情况下应用它时遇到了麻烦。
第一个问题:
1)使用In子查询技术列出通过签证或mc支付的客户的客户编号,客户名称和电话。分类 按客户名称。
这个我相信我得到了:
SELECT DISTINCT
tblCust.CustomerNum, CustomerName, Phone
FROM
tblCust
INNER JOIN tblOrd ON
tblCust.CustomerNum=tblOrd.CustomerNum
WHERE
tblOrd.PayMethod IN ("visa", "mc")
ORDER BY CustomerName;
但下一个对我没有意义:
2)使用In子查询技术从tbl列出具有州的客户的客户编号,客户名称和状态 以“co”开头的描述。
我不应该使用LIKE运算符代替IN吗? 到目前为止,我有:
SELECT
CustomerNum, CustomerName, StateProv
FROM
tblCust
INNER JOIN tblState ON
tblCust.StateProv = tblState.StateProv
WHERE
tblState.StateProvDesc IN
我不知道在IN之后要放什么,如果我使用LIKE我会说
... StateProvDesc LIKE“co%”
并完成它,但我认为这不是我老师想要的。 最后,第三个问题:
3)使用In子查询技术从tblCust列出客户 在该范围内至少有一个订单的客户的名称,国家/地区 $ 90,000- $ 120,000。按国家/地区排序,然后按客户名称排序。
不应该用于一系列数字吗?
感谢你们能想到的任何事情!
顺便使用微软访问
答案 0 :(得分:2)
我认为教授要你做的是在IN子句中编写一个子查询。您实际上可以在IN()中放置一个select语句,如下所示:
SELECT
CustomerNum, CustomerName, StateProv
FROM
tblCust
WHERE StateProv IN(SELECT StateProv FROM tblState WHERE StateProvDesc LIKE 'co%')
答案 1 :(得分:1)
我认为教师希望您将查询更改为使用... IN (SELECT ... FROM ...)
样式而不是内部联接。
您可以从说明的背面处理这些查询,例如:
......以“co”开头的状态描述。
-- Inner query
SELECT StateProv
FROM tblState
WHERE StateProvDesc LIKE `co%`
现在你有了这个,你可以编写外部查询:
从tbl列出客户编号,客户名称和状态,以便...
SELECT
CustomerNum, CustomerName, StateProv
FROM
tblCust
WHERE tblCust.StateProv IN (
-- Your inner query goes here
)