从代理所在城市检索产品详细信息的SQL查询
下面的问题是在我参加的一次考试中被问到的,但我想不出答案。 有人能帮我弄明白怎么做吗 表架构:-从代理所在城市检索产品详细信息的SQL查询,sql,Sql,下面的问题是在我参加的一次考试中被问到的,但我想不出答案。 有人能帮我弄明白怎么做吗 表架构:- CUSTOMERS ------------ cid PK cname city discount AGENTS ------------ aid PK aname city percent PRODUCTS ------------ pid PK pname city quantity price ORDERS ------------ ordno
CUSTOMERS
------------
cid PK
cname
city
discount
AGENTS
------------
aid PK
aname
city
percent
PRODUCTS
------------
pid PK
pname
city
quantity
price
ORDERS
------------
ordno PK
month
cid
aid
pid
qty
dollars
第一个问题 首先,我们从表中选择所需的信息
SELECT DISTINCT p.pid, p.pname
FROM Products AS p
然后我们看看代理和产品是如何连接的,它们是通过表订单连接的
我们确实加入这个表来获取代理ID
INNER JOIN Orders AS o ON (o.pid = p.pid)
然后,我们需要获得代理数据,条件是代理城市与产品存储城市相同
INNER JOIN Agents AS t ON (o.aid = a.aid AND p.city = a.city)
然后我们得到查询
SELECT DISTINCT p.pid, p.pname
FROM Products AS p
INNER JOIN Orders AS o ON (o.pid = p.pid)
INNER JOIN Agents AS t ON (o.aid = a.aid AND p.city = a.city)
这就得到了我们需要的答案
第二个问题
我们再次从表中查询所需的数据
SELECT DISTINCT p.pid
FROM Products AS p
INNER JOIN Orders AS o ON (o.pid = p.pid)
INNER JOIN Agents AS t ON (o.aid = a.aid)
WHERE a.aname = 'a03'
只是添加where条件
所有这些示例都适用于MySQL。
如果您想在哪里试验SQL查询,我建议您
也许是为了阅读和学习