作者oklp1415 (天生我材)
看板Database
标题[SQL ] 语法逻辑问题
时间Tue Sep 23 23:21:20 2014
(针对
SQL 语言的问题,用这个标题。请用 Ctrl+Y 砍掉这行)
资料库名称:MySQL
资料库版本:9
内容/问题描述:
请列出有经手过「123科技」这位客户订单的所有业务员的编号与姓名(业务员的资料不
可重复列出)。
客户
客户编号 ----->key
名称
电话
地址
订单
订单编号 ---->key
客户编号 ----->外键
业务员编号 ------>外键
订单日期
金额
业务员
业务员编号 ------>key
姓名
地址
电话
解1:
SELECT DISTINCT 姓名
FROM 业务员 s, 订单编号 o, 客户编号 c
WHERE c.名称 = '123科技' AND c.客户编号 = o.客户编号 AND
o.业务员编号 = s.业务员编号
解2:
selcet DISTINCT s.编号,s.姓名
from 业务员 s
where not exist
( select *
from 客户 c
where not exist
( select *
from 订单 t
where t.客户编号=c.客户编号 AND c.业务编号=s.业务编号 AND
c.名称 = '123科技'));
请问这样的解法都对吗??
我是偏向解2的解法,感觉是要列出全部相关资料的123科技,不知道我想法是否有错呢?
感谢!!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.171.42.155
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Database/M.1411485682.A.A0C.html
※ 编辑: oklp1415 (118.171.42.155), 09/23/2014 23:21:35