SQL連線查詢,sql 連線查詢跟多表查詢的區別

時間 2022-03-11 19:35:15

1樓:齊文

select a.name, substr(max(sys_connect_by_path(b.definition, ';')), 2) prize

from a,

b,(select rn,

prize id,

decode(rn, 1, 0, instr(prize, ';', 1, rn - 1)) + 1 sp,

decode(instr(prize, ';', 1, rn),

0,length(prize) + 1,

instr(prize, ';', 1, rn)) ep

from (select rownum rn from dual connect by rownum <= 20) a,

a as b

where decode(rn, 1, 0, instr(prize, ';', 1, rn - 1)) +

instr(prize, ';', 1, rn) > 0) c

where b.code = substr(c.id, sp, ep - sp)

and c.id = a.prize

start with rn = 1

connect by rn - 1 = prior rn

and c.id = prior c.id;

2樓:

你可以把表設計 成name可以重複,prize 是單獨 的值,要不按照(就是將兩個表連線起來嘛,a.prize和b.code匹配,case…when可以查詢,我想問的是除開case…when之外有沒得其他的方法,因為當b.

code裡的情況有很多的時候,這樣會導致a.prize裡的組合就很多,如果繼續用case…when的話就不合適了)你說的 就沒有好的辦法了

3樓:哀默能竹

select name ,price from a,b where a.price = b.code

4樓:

jerry 1;2;3

什麼意思啊 怎麼做到的啊

sql:連線查詢跟多表查詢的區別

5樓:匿名使用者

這倆沒區別

就是寫法不同

這個就如同表1裡有a,b倆欄位一樣

select a,b from 表1

select * from 表1

是一樣的

順便給你擴充套件下吧

在資料庫裡還有left join,right join,full join等

當這樣的時候用

select * from table1,table2 where table1.id = table2.id;

這樣類似的查詢就不行了。得用

select * from table1 left join table2 on table1.id = table2.id;這種了

6樓:匿名使用者

這兩條語句結果是等效的,查詢計劃也是等效的其中第一條語句叫做笛卡爾積,省卻了關鍵字cross joinselect * from table1 cross join table2 where table1.id = table2.id;

就這點區別了

7樓:匿名使用者

第一種寫法是sql92標準寫法

第二種寫法是sql99標準寫法 (推薦) 效果是等效的

8樓:下天

應該是沒有什麼區別就是寫法的不同

sql怎麼連線查詢2個表?

9樓:大野瘦子

使用where語句進行查詢,如:

select emp.e_id,company.c_oraname from emp,company where companey.c_id=emp.c_id

但是往往會碰到比較複雜的語句,這時候使用where就不太合適了,其實sql可以用較為直接的形式進行連線操作,可以在from子句中以直接的形式指出:

select top 10 e_id,e_name,c_name

from

emp join companey on companey.c_id=emp.c_id

where

e_id not in (select top 20 e_id from emp order by  e_id  asc)

order by e_id asc

//查詢表emp中第21到第30條資料以升序排列,其中c_name來自於另一個表

10樓:匿名使用者

select * from ygsq b1 inner join ygsq_jl b2 on b1.id = b2.ygsql_id 這樣就把兩張表的所有資料都查詢出來了。

樓主還想怎麼查?如果單純的連線查詢就是這樣。

11樓:匿名使用者

inner join用法:

select * from ygsq as a inner join ygsq_jl as b

on a.id=b.ygsq_id

left join用法:

select * from ygsq as a left join ygsq_jl as b

on a.id=b.ygsq_id

right join用法:

select * from ygsq as a right join ygsq_jl as b

on a.id=b.ygsq_id

where用法:

select * from ygsq as a,ygsq_jl as b

where a.id=b.ygsq_id

希望回答對你有幫助。

sql 多表連線查詢 10

12樓:

不需要統計這張表,你在有了其他表的基礎上做一個檢視view就好了。

create view

select qq,mail,feision,weibo from mail,gbkfx,qq,weibo where mail.zhanghao = gbkfx.zhanghao and .......

(把所有的對應關係都用zhanghao這個欄位連結起來就好了)

然後就出現了你截圖的這樣的一個檢視,可以看到。

13樓:匿名使用者

select t.賬號,q.qq,m.郵箱,g.飛信,w.微博 from mail m ,gbkfx g, qq q, weibo w, tongji t where

m.賬號=g.賬號 = q.賬號 =t.賬號 = w.賬號;

這樣就可以了啊?如果不能用連續=,可以用and分割開,多重新幾次不就行了

14樓:我又強力了

select a. 賬號,b.qq,c.郵箱,d.飛信,e.微博from tongji a

left join b on a.賬號=b.賬號left join c on a.

賬號=c.賬號left join d on a.賬號=d.

賬號left join e on a.賬號=e.賬號

sql三表連線查詢

15樓:大野瘦子

select a.*,c.f from (select * from a inner join b on a.

a = b.a) as a inner join c on a.d = c.

dselect a.*,c.f from a inner join b on a.a = b.a inner join b.d = b.d

兩個都可以,第一個更容易理解,括號裡的部分是查詢出查詢表a的資料和當表a的a=表b的a的資料,把這個結果集,再inner join c on a.d = c.d

查詢出表b的d=表c的d 所對應的f的值。

三個表左連線的sql語句

select

intro_web_page.id,

web_id,

web_name,

template_id ,

template_name,

template_param,

intro_web_page.sort_order

from intro_web_page left join intro_web on (web_id=intro_web.id)

left join intro_template on (intro_web_page.template_id=intro_template.id)

注:這裡主要是看,當兩個表和某一個表都有聯絡的時候,左連線left join    on要怎麼寫。

更新語句

update issue inner join user on `issue`.insert_uid and `user`.id inner join

(select  issue.id as id,issue.insert_uid as uid,`user`.

school_id as school_id,school.area as area1 from issue,user,school

where issue.insert_uid=`user`.id and  `user`.school_id=school.id) as t1

on issue.insert_uid=t1.uid

set issue.area=t1.area1

16樓:戴劍波

最簡單的方法就是普通連結:

select * from 表a,表b,表cwhere 表a.a = 表b.a and 表b.d = 表c.d還可以使用內連結,外連結,不過這裡用這個就可以了

17樓:金輝天翼

這個我自己執行過,可以用:student表,score表,course表。案例如下:

select s.sname,c.cname,e.

degree from student s join score e on s.sno=e.sno join course c on c.

cno=e.cno

sql 自身連線查詢問題

18樓:匿名使用者

select b.姓名,b.班級(這裡b.

後面跟你要查詢的欄位) from 學生基本資訊表 a,學生基本資訊表 b where a.姓名='查詢資訊' and a.班級號=b.班級號

19樓:匿名使用者

這是個自聯結 a是用來查詢你要找的人 得出你需要的班級號,因為a指定了姓名或者說是主鍵,就只會有一條資訊(排除重名情況),得出了班級號,再通過班級號去得到所有學生的資訊

20樓:丁丁愛答題

你就站在冠軍的位置上,我去幫你買幾個橘子

sql子查詢與表連線查詢

21樓:芒永修夔綢

確實是這樣的。。所以一般用子查詢巢狀相關

假如你有3表,欄位都是豎的,結果要求你查詢出來的東西都是把他拉橫的,你用連線是做不出來的。

其實資料用什麼方法都可以查詢出來,只是很多題目他要你查出來的框架和他的標準答案要一致就必須用子查詢

sql連線查詢跟多表查詢的區別

這倆沒區別 就是寫法不同 這個就如同表1裡有a,b倆欄位一樣 select a,b from 表1 select from 表1 是一樣的 順便給你擴充套件下吧 在資料庫裡還有left join,right join,full join等 當這樣的時候用 select from table1,tab...

sql基礎查詢語句,sql簡單查詢語句

greate table insert selce filetad,name,calss,form student sql簡單查詢語句 1 首先開啟資料庫,建立好表。2 然後查詢全體教師的教師號 姓名 職稱,並分別為三列指定別名 教師號 姓名 職稱,如下圖所示。3 查詢結果如下圖所示。4 接著查詢所...

sql連線查詢語句中from子句中表的順序有什麼要求

嚴格上來說是沒有要求的,他們有兩種寫法,一種是ansi sql,一種是trans sql.ansi sql select from table1,table2,table3 where table1.id table2.id and table3.id table2.pid trans sql se...