1樓:斯內科
select * from a left join b on a.id=b.id where b.id is null --a的id 不在b表中的
同理select * from b left join a on a.id=b.id where a.id is null --b的id不在a表中的
2樓:豐運軟體
sdhammer123回覆是正確的。
3樓:匿名使用者
select * from 表1
union
select * from 表2
4樓:
1、無條件連線
無條件連線其實就是廣義笛卡爾乘積,即一個表(m行)中的每一行都與另外表(n行)中的每一行聯合,最終構成了一個m*n行的一個表。
2、有條件連線
有條件連線顧名思義就是兩個表之間的連線是有條件的,其中一個表的某一個欄位與另外一個表中的某一個欄位以某一種條件聯絡起來,連線的過程就是先掃面表1的第一行,去與表二中的每一行對比,滿足條件的就選擇出來,然後拿表一中的第二行去做相同的操作,一直到最後完成。很顯然,這個連線後的表其實是廣義笛卡爾乘積的子集。這種條件如果是不相等的話,那麼就是非等值連線,反之就是等值連線。
非等值連線用的比較少,主要是等值連線。
3、等值連線
當一個表的某一個欄位與另外一個表中的某一個欄位的聯絡條件是相等的時候,那麼這種連線就是等值連線。在等值連線中,如果消除了重複的列,那麼這樣的等值連線就是自然連線。在自然連線中,滿足條件的才會被選出來成為新的行,不滿足條件的是不會被選擇出來的。
其實自然連線就是內連線。
4、外連線
在兩個表之間,如果某一張表的行與另外一張表對應的時候,出現了根據條件去篩選另外一張表的全部行,而前一張表仍有未對應的行,那麼這些行是不會成為新表中的行的,但是如果想把這些沒有對應的行顯示出來,就要用到外連線了。如果表一和表二連線,在表一中存在沒有連線的行,表二中全部用null來補充,缺損的就是null,所以此時稱為左外連線,反之則是5.右外連線。
左外連線:就是以左邊的行為主,左邊的全部都要顯示出來,右邊與之對應的要顯示出來,沒有與之對應的就補null。至於右邊是否對應完了,不用考慮。
右外連線:就是以右邊的行為主,右邊的行要全部顯示出來,左邊與之對應的顯示出來,沒有對應的補null。至於左邊是否對應完了,不用考慮。
sql server中三個表兩兩關聯 怎麼實現查詢??急!!
5樓:兔丞飛
select a.*
from 學員表 a
inner join 校區表 b on a.所在學校=b.所在學校
inner join 管理員表 c on b.區域=c.區域
where c.使用者名稱=@使用者名稱 and c.密碼=@密碼
擴充套件資料
在sql server中使用join on 【inner join on】關聯多表查詢
select cyb.id, xa.name
from geneshop.dbo.t_member_cyb cyb
join geneshop.dbo.xx_admin xa on xa.id = cyb.hzjg_id
join geneshop.dbo.t_bg bg on bg.cyb_id = cyb.id
where (cyb.cybbm=402045 and bg.product_id = 121) or (cyb.
cybbm=402070 and bg.product_id = 118)
具體情況若是判斷邏輯關係是否正確可以使用如下**:
select dbo.usersinfo.usercode,dbo.ryqxb.usercode,dbo.ryqxb.reportto,b.ename
from dbo.usersinfo,dbo.usersinfo b,dbo.ryqxb
where dbo.usersinfo.usercode=dbo.ryqxb.usercode and
dbo.ryqxb.reportto=b.ename
6樓:匿名使用者
如,現在有以下三張表:
管理員表:
使用者名稱、密碼、區域
學員表:
姓名、性別、學員號、所在學校
校區表:
所在學校、區域
現在要查詢一條完整的資訊,可以用這種方法寫sql語句:
select * from 管理員表 a,學員表 b,校區表 c where a.區域=c.區域 and b.所在學校=c.所在學校;
注意:可以把*替換成自己想查的表的欄位,但必須帶上字首,比如要查管理員表中的使用者名稱,可以寫做a.使用者名稱。
7樓:匿名使用者
select * from 學員表 where 所在學校=(select 所在學校 from 校區表 where 區域=(select 區域 from 管理員表 where 使用者名稱=『輸入』 安定 密碼=『輸入』))
8樓:晏耘豪
select a.*
from 學員表bai a
inner join 校區表 b on a.所在學校=b.所在學校inner join 管理員表 c on b.
區域=c.區域where c.用du戶名zhi=@使用者名稱 and c.
密碼=@密碼
9樓:匿名使用者
首先,我建議你把登陸和列表查詢分開來做,無論是從安全還是程式實現的角度來看,都是!
登陸後,用session儲存區域資訊,然後像以下查詢select 學員表.* from 學員表,校區表 where 學員表.所在校區 = 校區表.所在校區
當然,你非要直接做也行
select 學員表.* from 學員表,校區表,管理員表 where 學員表.所在校區=校區表.
所在校區 and 校區表.區域 = 管理員表.區域 where 使用者名稱 = ?
and 密碼 = ?
如果你是這樣寫的話,建議做一下安全性校驗,不然,很容易被注入攻擊
如何將不相關的兩個sql查詢結果合併起來?
10樓:
沒有任何關係是合併不起來的,否則就是笛卡爾積了,這肯定不是你要的結果。你可以想一想如果沒有關係,這兩個表的資料如何在一行顯示,這個需求本身就無意義。
11樓:匿名使用者
用巢狀表,把第二個語句當做第一個語句的表,放到第一個語句的from後面
12樓:匿名使用者
使用union all
13樓:
select 欄位1,欄位2 from a left join c on a.a_bh = c.c_bh
union all
select 欄位3 as 欄位1,欄位4 as 欄位2 from b left join c on b.b_bh = c.c_bh
sql server如何關聯兩個表
14樓:匿名使用者
你是想得到 table2 的資料對吧?
你可以用檢視來做
create view table1 as select id as ttid ,text1,text2 from table2
教程:create view
名稱 create view — 構建一個虛擬表(檢視)
語法 create view view as select query
輸入 view
所要建立的檢視名稱.
query
一個將為檢視提供行和列的 sql 查詢.
請參閱 select 語句獲取有效引數的更多資訊.
輸出 create
如果檢視建立成功,返回此資訊.
error: relation 'view' already exists
如果在資料庫中已經存在所宣告的檢視.
notice create: attribute named "column" has an unknown type
如果不宣告,所建立的檢視將有一個未知型別的欄位.例如,下面命令返回一個警告:
create view vista as select 'hello world'
然而下面命令將不出現警告:
create view vista as select text 'hello world'
描述 create view 將定義一個表的檢視.這個檢視不是物理上實際存在(於磁碟)的.具體的說,自動生成一個改寫索引規則的查詢用以支援在檢視上的檢索.
注意 目前,檢視是隻讀的.
使用 drop view 語句刪除檢視.
用法 建立一個由所有 comedy (喜劇)電影組成的檢視:
create view kinds as
select *
from films
where kind = 'comedy';
select * from kinds;
code | title | did | date_prod | kind | len
ua502 | bananas | 105 | 1971-07-13 | comedy | 01:22
c_701 | there's a girl in my soup | 107 | 1970-06-11 | comedy | 01:36
(2 rows)
相容性sql92
sql92 為 create view 宣告瞭一些附加的功能:
create view view [ column [, ...] ]
as select expression [ as colname ] [, ...]
from table [ where condition ]
[ with [ cascade | local ] check option ]
完整的sql92命令可選的子句是:
check option
這個選項用於可更新檢視.所有對檢視的 insert 和 update 都要經過檢視定義條件的校驗.如果沒有通過校驗,更新將被拒絕.
local
對這個檢視進行完整性檢查.
cascade
對此檢視和任何相關檢視進行完整性檢查.在既沒有宣告 cascade 也沒有聲名 local 時,假設為 cascade.
15樓:一騎當後
sql server可以用欄位來相互關聯兩個表,具體方法如下:
表a,欄位:id int
sid int (表b 用來關聯的欄位)表b,欄位:
id int (表a sid欄位 用來關聯表a的)....
具體實際用法如下:
用法1、select * from 表a left join 表b on 表a.sid=表b.id
用法2、select (select 欄位 from 表b where 表b.id=表a.sid)
from 表a
怎樣把多個excel檔案合併成,怎樣把多個excel檔案合併成一個
如果你的所有txt檔案內的資料都是有規律的,可以先將多個txt檔案進行合併為一個txt檔案後再進行匯入到excel中進行分列操作,也可以先單個匯入txt檔案到excel中分列操作後再進行復制合併,匯入excel步驟如下 選擇excel工具欄中的 資料 選項 下拉選擇 匯入外部資料 在 匯入資料 檔案...
SQL Server怎麼把表中的資料,按某列排序 然後再存回去
只能再建個表 按升序排列後的資料插入那個表 然後把你現在這個表的資料delete 然後再從新建表中插入現在這個表 是同一張表嗎?還是要再建一張相同結構的表?在sql中可以將資料表以某一種順序的形式存放到另一 中嗎 是可以的,不過copy你以後再 ai入資料的時候,新du的資料還是會繼續按照自增zhi...
如何把多個c檔案放到工程中,如何把多個C 檔案放到一個工程中?
新建一個工來程 在視窗自 介面中,工程 新增到工程 新增檔案 比方說你建立了5個檔案 編譯後生成5個object,那連線時總不能兩兩連線吧,這會浪費資源 做了很多無用功 電腦畢竟不是智慧的 不能判斷哪個該和哪個連線 在你的fileview視窗中點你的工程名,右鍵選擇add new project t...