Re: [SQL ] 新手两张表求解

楼主: hhomerun (HOMERUN家族弟弟)   2014-04-19 22:11:45
如果我没把你的问题理解错误,
如果只是为了达到目的的话, 有两个解法.
第一个方法:
走实在路线的, 反正你的课程这么少, 那就干脆不用 Esub这张表了.
用case when 来做.
SELECT case when [clsAM]=1 then '国' when [clsAM]=2 then '英'
when [clsAM]=3 then '数' when [clsAM]=4 then '理' end [早上]
,case when [clsPM]=1 then '国' when [clsPM]=2 then '英'
when [clsPM]=3 then '数' when [clsPM]=4 then '理' end [下午]
FROM [test].[dbo].[Eclass]
第二个方法:
可能比较符合你心目中的复杂.
你就这样想 "既然一个会冲突, 那再JOIN 一个不就好了. 不是吗? 哈哈
SELECT B.sub [早上]
,C.sub [下午]
FROM [test].[dbo].[Eclass] AS A
JOIN [test].[dbo].[Esub] AS B
ON A.[clsAM]=B.[uid]
JOIN [test].[dbo].[Esub] AS C
ON A.[clsPM]=C.[uid]
希望鲁蛇的答案对你有帮助QQ
喔对了, 希望哥葛您下次发文的时候...
values 的名称要在整篇文章里都保持一致阿~~~
不然很难阅读, 也可能会令人误解你想要问的问题.
※ 引述《justlike5566 (5566天下无敌)》之铭言:
: 今天做练习遇到一个问题想了很久不知何解
: dbo.Esub
: uid sub
: 1 国
: 2 英
: 3 数
: 4 理
: dbo.Eclass
: clAm clPm
: 1 4
: 2 3
: 3 2
: 4 1
: Eclass 各对Esub 的sid
: 我想做出
: 早上 下午
: 国 理
: 英 数
: 数 英
: 理 国
: 写法是
: SELECT a.clsam AS '早上',a.clspm AS '下午' FROM dbo.Eclas AS a
: JOIN dbo.Esub AS b ON a.clam=b.sid
: 写到这边后突然想到 早上跟下午的判断会冲突 不知道条件要怎么下
: 求神人解答 感恩
作者: MagicPaul (达人)   2014-04-20 19:32:00
想问一下,鲁蛇到底是啥意思啊
作者: cleanwind (C.Y.)   2014-04-20 22:43:00
鲁蛇是 loser 的谐音,温拿是 winner 的谐音。

Links booklink

Contact Us: admin [ a t ] ucptt.com