用视图下载多个表的数据如何保证编号唯一 |
答題得分者是:Fishman
|
zzmbeyond01
中階會員 ![]() ![]() ![]() 發表:98 回覆:167 積分:53 註冊:2003-09-07 發送簡訊給我 |
各位大大:
比如三个表:
School: ID(number(5) not null) Name(varchar2(10))
Student:ID(number(5) not null) Name(varchar2(10))
Teacher:ID(number(5) not null) Name(varchar2(10)) [code]
Create view IDName as
(select ID ,Name from school
union all
select ID ,Name from Student
Union all
select ID ,Name from Teacher)
{/code}
建立的新视图IDName如何保证ID的唯一性?或者有没有别的方法标识各条记录?
|
Fishman
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi zzmbeyond01, 改用 union 取代 union all 試試 http://delphi.ktop.com.tw/topic.php?topic_id=46127
Create view IDName as (select ID ,Name from school union select ID ,Name from Student Union select ID ,Name from Teacher)
------
Fishman |
zzmbeyond01
中階會員 ![]() ![]() ![]() 發表:98 回覆:167 積分:53 註冊:2003-09-07 發送簡訊給我 |
UNION : All rows selected by either query
UNION ALL : All rows selected by either query,including all duplicates 谢谢Fishman大大,
我那些表的记录是不存在重复的,Union 或Union all我想没有太大的影响。 我的意思是想不仅把各个表的记录下载下来,更主要是用ID或其它的编号字段区别每条记录。
我是暂时这么解决的,但是仍然会有重复的记录ID存在,怎么去掉重复的编号或者在视图中建立唯一的编号
Create view IDName as ( select ID ,Name from school union all select ID*50 ,Name from Student Union all select ID*100 ,Name from Teacher )發表人 - zzmbeyond01 於 2004/12/28 13:55:33 發表人 - zzmbeyond01 於 2004/12/28 13:57:36 |
Fishman
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi zzmbeyond01, 加一個值(大於ID最大值),或是用 ROWID(In Oracle Only)
Create view IDName as ( select ID 100000 ID,Name from school union all select ID 200000 ID,Name from Student Union all select ID 300000 ID,Name from Teacher ) Create view IDName as ( select ROWID ROW_ID,ID ,Name from school union all select ROWID ROW_ID,ID ,Name from Student Union all select ROWID ROW_ID,ID ,Name from Teacher )
------
Fishman |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |