1樓:匿名使用者
給個例子,可能還可以優化,
其實這種複雜邏輯最好不要用sql去做,而是sql只是取出資料,邏輯在**層做。
select
t.航班號, t1.中文名, t1.英文名, t2.中文名, t2.英文名, t3.中文名, t3.英文名
from
表1 t,
(select 表1.航班號, 表2.中文名, 表2.英文名 from 表1, 表2 where 表1.航站1 = 表2.航站**) t1,
(select 表1.航班號, 表2.中文名, 表2.英文名 from 表1, 表2 where 表1.航站2 = 表2.航站**) t2,
(select 表1.航班號, 表2.中文名, 表2.英文名 from 表1, 表2 where 表1.航站3 = 表2.航站**) t3
where
t.航班號 = t1.航班號 and t.航班號 = t2.航班號 and t.航班號 = t3.航班號
2樓:移動引領生活
create table tb1
( 航班號 varchar(20),
起飛時間 varchar(20),
降落世間 varchar(20),
航站1 varchar(20),
航站2 varchar(20),
航站3 varchar(20)
) insert into tb1 values ('cz1508','1121','1322','cgq','she','pek');
insert into tb1 values ('cz1605','1233','1544','cgq','pek','cgo');
create table tb2
(航站** varchar(20),
航站中文名稱 varchar(20),
航站英文名稱 varchar(20),
)insert into tb2 values ('cgq','長春','changchun');
insert into tb2 values ('she','瀋陽','shenyang');
insert into tb2 values ('pek','北京','beijing');
insert into tb2 values ('cgo','鄭州','zhengzhou');
select a.航班號,b.航站中文名稱 as 航站1中文名稱,b.航站英文名稱 as 航站1英文名字,
c.航站中文名稱 as 航站2中文名稱,c.航站英文名稱 as 航站2英文名字,
d.航站中文名稱 as 航站2中文名稱,d.航站英文名稱 as 航站2英文名字
from tb1 a left join tb2 b on a.航站1=b.航站**
left join tb2 c on a.航站2=c.航站** left join tb2 d on a.航站3=d.航站**
3樓:匿名使用者
select a.航班號,
b.航站中文名 as 航站1中文名,b.航站英文名 as 航站1英文名,
c.航站中文名 as 航站2中文名,c.航站英文名 as 航站2英文名,
d.航站中文名 as 航站3中文名,d.航站英文名 as 航站3英文名
from test.表1 a join test.表2 bon a.
航站1=b.航站** join test.表2 con a.
航班2=c.航站** join test.表2 don a.
航站3=d.航站**
(多表查詢肯定沒錯,但有點繁瑣,湊合著用吧~)
4樓:法拉克的
select 航班號,
t1.航站中文名 as 航站1中文名,t1.航站中文名 as 航站1英文名,
t2.航站中文名 as 航站2中文名,t2.航站中文名 as 航站2英文名,
t3.航站中文名 as 航站3中文名,t3.航站中文名 as 航站3英文名
from 表1 t,表2 t1,表2 t2, 表2 t3where
t.航站1 = t1.航站**
and t.航站2 = t2.航站**
and t.航站3 = t3.航站**
5樓:sonkwl談美食
**裡面處理吧,不然要寫3個鏈結查詢,影響資料庫查詢效率
sql查詢乙個表中兩個字段對應的另乙個表的資料,應該怎麼操作?
6樓:匿名使用者
根據 news表中的 news_type_id = 1 查出 news_type表中的 「透明點評」 這條資料,「透明點評」是最後需要查出來的位置資料。
子查詢或者表連線
比如表連線的方式就可以寫成:
select n.id,t.type_name,title from news as n inner join news_type as t onnn.
news_type_id=t.type_id;
只查「透明點評」的資料子查詢可以寫成:
select * from news where news_type_id=(select type_id from news_type where type_name='透明點評');
7樓:匿名使用者
sql查詢乙個表中兩個字段對應的另乙個表的資料,可以通過如下操作進行:輸入語句:select a.
* from test a,test1 b where a.id=b.id and a.
name=b.name;
sql資料庫,請問如何查詢乙個表兩個字段內容和另乙個表兩個字段內容完全相同的記錄?
8樓:匿名使用者
需要用連線查詢來處理。
如有以下2張表:
查詢2張表id和name欄位內容完全相同的內容,可用如下語句:
select a.* from test a,test1 b where a.id=b.id and a.name=b.name;
結果:說明,兩表連線where條件要寫上關聯條件,因為提問是兩個字段完全相等,所以就寫作:a.id=b.id and a.name=b.name
9樓:
select a1.* from a1,a2
where a1.b1=a2.b1 and a1.b2=a2.b2;
10樓:匿名使用者
select a1.b1, a1.b2, a1.b3
from a1 inner join a2 on a1.b1 = a2.b1 and a1.b2 = a2.b2
sql查詢乙個表中兩個字段對應的另乙個表的資料
11樓:匿名使用者
根據 news表中的 news_type_id = 1 查出 news_type表中的 「透明點評」 這條資料,「透明點評」是最後需要查出來的位置資料。
子查詢或者表連線
比如表連線的方式就可以寫成:
select n.id,t.type_name,title from news as n inner join news_type as t onnn.
news_type_id=t.type_id;
只查「透明點評」的資料子查詢可以寫成:
select * from news where news_type_id=(select type_id from news_type where type_name='透明點評');
12樓:匿名使用者
select a.* from a,b where a.id=b.id and a.name=b.name
sql如何根據乙個欄位的多個值查詢
13樓:tutu天然呆
具體方法如下:
假定表名test,列id是數值型別。
用同乙個欄位的多個值作為條件來查詢可以使用in或者or。
具體語句如下:
1、select * from test where id in (1,2,3)
2、select * from test where id = 1 or id =2 or id = 3
顯然第一種方法更簡便。
ps: 如果如你訊息所說,有乙個選課表test,學生號id,所選課程名name,那麼,檢索同時選擇了美術、體育、**三門課程的學生id的語法如下:
select a.id from test a,test b,test c
where a.id = b.id and b.i
d = c.id and a.name = '美術' and b.name = '體育' and c.name = '**';
問題的關鍵,在於test表通過別名做三次關聯查詢。
14樓:匿名使用者
select 別名.欄位1,別名.欄位2,別名.欄位3 from 表.別名 where 別名.欄位1 in ('欄位1值1',欄位1值2'','欄位1值3');
用關鍵字 in實現 乙個欄位的多個值查詢,上面使用偽**舉例
希望我的回答對你有幫助。。
15樓:匿名使用者
如果menuid是列表1,5,8
那麼select distinct companyid from menutable where menuid in('1','5','8')(如果menuid為字元型別,數字型別將引號去掉)
如果傳入的menuid是個字串1,5,8那麼寫成select distinct companyid from menutable where ',1,5,8,' like '%,'+cast(menuid as varchar)+',%'
16樓:匿名使用者
select companyid from 表名 where menuid in (值 , 值 , ……)
或者 menuid是根據別的條件從別的地方查出來的
select companyid from 表名 where menuid in (select menuid from .....)
17樓:匿名使用者
select menuname from 表名
where menuid='' //查詢條件
將乙個表中的某個字段插入到另乙個表的字段,如何寫sql語句?
18樓:漫奕琛寧媼
更改長度
ifexists(select
a.*from
syscolumns
ainner
join
sysobjectsbon
a.id=b.id
where
b.type
='u'
andb.name=upper('youtable')anda.name=lower('youfield'))alter
table
youtable
alter
column
youfield
char(60)
null
go新增
ifnot
exists(select
a.*from
syscolumns
ainner
join
sysobjectsbon
a.id=b.id
where
b.type='u'
andb.name=upper('youtable')anda.name=lower('youfield'))begin
alter
table
youtable
addyoufield
datetime
null
endgo
在excel中如何查詢字段對應的多個欄位的內容
1 首先以乙個簡單的例子做示範,列數相對較少,看起來也比較清楚 在奧運會或其他比賽上可以看到各個國家的獎牌數的變化 2 用到的函式是vlookup,它是乙個縱向查詢函式,通過按列查詢返回該列查詢列序所對應的值 可以直接在單元格輸入 vlookup 此時excel就會提示4個引數 也可以在空白欄處點選...
SQL用update語句一次更新多個字段應該怎麼寫
測試資料 a declare a table id int,c1 varchar 1 c2 varchar 1 c3 varchar 1 insert into a select 1,a b c union allselect 2,d e f union allselect 3,g h i 測試資料...
如何通過一條SQL實現一條資料關聯多個表 如表A中的一條資料關聯表B 表C 表D等其他表
1.開啟sqlserver,在物件管理器裡找到要搞的庫右鍵 任務 生成指令碼 2.在彈出的嚮導中跟著嚮導一步一步做吧,最後可以搞出一個檔案 3.一個庫就一個檔案你就直接在mysql裡執行s 搞清楚表之間的關係 例如表a用b欄位跟b的b欄位關聯,用c欄位跟表c的c欄位關聯,用d欄位跟d的d欄位關聯 s...