SQL查詢(醫學項目的複習)

來源:互聯網
上載者:User

標籤:rtt   nop   設計   elf   dql   apm   foj   mbg   odk   

 

l怎麼寫Sql語句的思路:

 

主查詢表:SYSUSER

關聯查詢表:userjd(監督單位表),useryy(醫院表)

 

 

 

 

 

 

SQL查詢分為:

1.內串連

如果兩張表有外鍵關係就可以使用內串連,因為通過內串連每一條只能返回單條記錄。話句話說如果主查詢表的欄位通過關聯查詢表能查到(且只能查詢一條,就是在關聯表中只能查出一條),可以使用內連結。

 

 

 

舉例1:

表:DICTINFO:

如下:

這邊表中ID是主鍵。在這裡TYPECODE是外鍵。

表:DICTTYPE.

如下:

其中TYPECODE是主鍵。

這樣一來兩張表就有了主外鍵的關係(表DICTTYPE的主鍵TYPECODE在表DICTINFO中是外鍵)。

好了我們就可以使用內串連了。

 

為什麼上面說通過內串連每一條只能返回單條記錄呢?

因為:你想啊,typecode是外鍵,什麼是外鍵?在表dicttype中typecode是主鍵,主鍵是唯一的,那麼就是typecode都是唯一的,那麼dictinfo.typecode去匹配dicttype裡面的

typecode時只有一條記錄,這就是說只能返回單條的記錄,也就是說如果在dicttype中的codetype不是唯一的,那麼就會查出來多條的記錄,那麼就不是內串連了。

 

 

 

 

 

舉例2:

再舉一個例子:做一個資料查詢使用內串連的方式。

假設有兩張表sysuser表還有dictinfo表,我們查sysuser表查出了Userid和GroupID如下:

但是我想知道這裡的GROUPID到底代表是什麼,我們根據表的設計可以從dictinfo表中查到1,2,3,4到底代表什麼,比如

 

 

好了知道了要求後我們就來使用內串連來實現。

其實

 

這個東西就是一個結果集我們把它當成一張表(這裡的DICTCODE具有唯一性,可以當成是主外鍵關係)

 

所以根據內串連思路我們這麼寫sql語句:

select userid,groupid,info from sysuser,(select id,info,dictcode from dictinfo where typecode=‘s01‘) grouptable wheregrouptable.dictcode=sysuser.groupid
(select id,info,dictcode from dictinfo where typecode=‘s01‘) grouptable  就相當於把查出來的結果集當成了一張grouptable的表。


2.外連結

 

3.子查詢

SQL查詢(醫學項目的複習)

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.