SQL怎樣實現幾多個表的模糊查詢?用SELECT嗎

2022-02-17 15:27:51 字數 5861 閱讀 2978

1樓:柳念露鐵晗

你要把多張表連起來啊

比如說table1和table2有個共同的屬性"name"欄位那就要這麼寫

select

*from

table1,table2

where

table1.name=table2.name如果你要模糊查詢的話

(比如順便來個欄位)

select

*from

table1,table2

where

table1.name=table2.nameandtable1.id

like

'2%'

這樣就好了

這裡的*可以換成你上面的

你上面的**沒有把幾張表連在一起

2樓:貴高馳史飛

查詢多張表要主外健關係用儲存過程或者觸發器,比較好,你這樣寫好麻煩select

*from

stu1

join

stu2

onstu1.stuno

=stu2.stuno

join

stu3

onstu1.stuno

=stu3.stuno

join

stu4

onstu1.stuno

=stu4.stuno

where

written<=60

orlabexam<=60

這樣才是多表查詢,都要有主外健關係

3樓:矯格菲勤北

用聯合嘛

把多張表查詢出來的結果合併起來

select

table1.id,table1.name,table1.clas,table1.chinese,table1.arith,table1.english

from

table1

where

table1.id

like

'1%'

union

allselect

table2.id,table2.name,table2.clas,table2.chinese,table2.arith,table2.english

from

table2

where

table2.id

like

'1%'

union

all以此類推

4樓:代向南塔丹

1.建個檢視

2.like之間一般用and不用or吧,要清楚邏輯。

sql語句進行模糊查詢時如何同時用一句話篩選多個關鍵詞

5樓:匿名使用者

1、建立測試表,create table test_a(zlyt varchar2(20));

2、插入測試資料,並提交;

insert into test_a values('abc');

insert into test_a values('dfs');

insert into test_a values('rte');

commit;

3、執行sql語句,

select zlyt, replace(replace(zlyt, 'b', 'x'), 'f', 'x') zlyt2

from test_a t

where zlyt like '%b%'

or zlyt like '%f%'

擴充套件資料

1、在進行資料庫查詢時,有完整查詢和模糊查詢之分。

一般模糊查詢語句如下:select 欄位 from 表 where 某欄位 like 條件,其中關於條件,sql提供了四種匹配模式:

1)% :表示任意0個或多個字元。可匹配任意型別和長度的字元,有些情況下若是中文,請使用兩個百分號(%%)表示。

2)_ : 表示任意單個字元。匹配單個任意字元,它常用來限制表示式的字元長度語句:

3)[ ] :表示括號內所列字元中的一個(類似正規表示式)。指定一個字元、字串或範圍,要求所匹配物件為它們中的任一個。

4)[^ ] :表示不在括號所列之內的單個字元。其取值和 相同,但它要求所匹配物件為指定字元以外的任一個字元。

2、replace官方語法:

replace ( string_expression , string_pattern , string_replacement )

1)引數含義:

string_expression 要搜尋的字串表示式。string_expression 可以是字元或二進位制資料型別。

string_pattern 是要查詢的子字串。string_pattern 可以是字元或二進位制資料型別。string_pattern 不能是空字串 ('')。

string_replacement 替換字串。string_replacement 可以是字元或二進位制資料型別。

2)返回型別:

如果其中的一個輸入引數資料型別為 nvarchar,則返回 nvarchar;否則 replace 返回 varchar。

如果任何一個引數為 null,則返回 null。

replace(string,from_str,to_str) 即:將string中所有出現的from_str替換為to_str。

6樓:流浪雲風

你自己都說了,使用模糊查詢就可以了。

如果是查詢zlyt中含有b或f可以這樣寫:

select * from 表名 where zlyt like '%b%' or zlyt like '%f%'

如果是查詢zlyt中含有b和f可以這樣寫:

select * from 表名 where zlyt like '%b%f%' or zlyt like '%f%b%';

不同的是先後順序,根據你的情況自己可能需要調整

更新:update 表名 set 欄位名 = 修改後的新值

where zlyt like '%b%' or zlyt like '%f%';

where條件可以參考上面select中where條件的寫法,看你要匹配的規則。

sql語句如何模糊查詢兩個表中兩列的包含情況 50

7樓:匿名使用者

select * from 表名 where [col1] like convert(nvarchar,'%'+(select col2 from dbo.userinfo where 條件)+'%') //注意 因為 like '%%這裡面的模糊查詢數量唯一 所以 (select col2 from dbo.userinfo where 條件) 必須唯一 這裡就不能再有幾個條件了 追問:

如果資料是在兩張表呢?即表a col1 大連市中山區 表b col2 中山 怎樣能查處col1包含col2的資料呢? 回答:

select * from 表名1 where [col1] like convert(nvarchar,'%'+(select col2 from 表名2 where 條件)+'%') 這裡有2個 % 如果你想要 中山%就去掉前面一個 具體點就是 如果 要 %中山 就去掉後面一個比如你要選擇 col1 的資料要和某個酒店所在的地方 比如 表b col3 中存的是酒店名稱 酒店是 萬達酒店 對應的 col2是 中山 select * from 表名1 where [col1] like convert(nvarchar,'%'+(select col2 from 表名2 where col3 ='萬達酒店')+'%') 這樣就篩選出了 所有和萬達酒店所在地方名字類似的地區了

sql語句從多個表裡提取多個資料,select後面查詢結果要不要加表名?

8樓:匿名使用者

如果多個表裡的欄位名稱有重複,需要在欄位的前面加表名字首如: a表有 a1,a2欄位

b表有b1,b2,a1欄位

select a.a1 ,a2,b1,b2 from a inner join b on a.a1=b.a1

一般為了sql語句可讀性會在後面加別名

select a.a1 as a表的a1 ,a2,b1,b2 from a inner join b on a.a1=b.a1

sql多表查詢多個欄位

9樓:鬱筱羽

sql語句格式:

select 欄位1,欄位2,欄位3

from 表1,表2,表3

where 條件

例子:查詢s表中的sno欄位, c表中的cno欄位,j表中的jno欄位

select sno,pno,jno

from s,p,j

10樓:匿名使用者

select col1,col2,col3 from tb1union all --沒有all就不含相同的記錄select col1,col2,col3 from tb2union all

select col1,col2,col3 from tb3

11樓:

找這3個表的共同欄位做個外部連結,再查詢好了。

12樓:匿名使用者

至少把表結構 與直接關係列出吧

一般情況你可以使用連線查詢比如

select a.cl,a.cl2,b.bl from a a left join b b on a.id=b.fid where ....

13樓:

資料庫有好幾個表,查詢資料有幾種方法,

假定資料結構為:id,欄位1,欄位2,欄位3,其他欄位資料表分別為 table1,table2,table31、將三個表的不同的資料合併

select 欄位1,欄位2,欄位3 from table1union

select 欄位1,欄位2,欄位3 from table2union

select 欄位1,欄位2,欄位3 from table32、將三個表的資料合併

select 欄位1,欄位2,欄位3 from table1union all

select 欄位1,欄位2,欄位3 from table2union all

select 欄位1,欄位2,欄位3 from table33、根據某一檢索條件將三個表中的資料橫向排列比較複雜,且不知結構,做個簡單的,2個表的假定將 table1,table2 兩個表中 id 相同的資料列出來:

select table1.欄位1,table1.欄位2,table1.欄位3,

table2.欄位1,table2.欄位2,table2.欄位3from table1,table2

where table1.id=table2.id4、其他更加複雜的。

....

不知是否能解釋明白,如有問題,可直接給我傳送資訊,需將你的詳細需求說明白。

14樓:我懷念的我不信

inner left right full

一條sql如何使用兩個like查詢兩個欄位?

15樓:匿名使用者

你這中間有一個or 的關係,必須括起來

select m.create_time

from msg m

where (m.msg_txt like '%c-%' or m.msg_txt like '%e-%')

and m.create_time like '2013-06%'

order by m.create_time desc另外一個問題是,

你這列到底是日期還是字元,如果是日期,怎麼能用 like 呢?

如果是字元,那麼分隔符應該是 /, 而不是 -

如何實現MyBatis僅更新SQL語句中指定的欄位

物件 public class entity 資料 表create table qai entity id char 10 not null,value int not null default 0,create time timestamp not null,primary key id myba...

敘述使用SQL語言實現各種關係運算的方法!

sql server資料中運算子與表示式。select子句相當於投影,where子句相當於選擇,多表的內連線相當於自然連線,除法運算沒有直接的sql語句與之對應。怎樣使用sql語句實現選擇 投影和連線等關係運算?sql語句中select對應投影運算,where語句對應選擇運算,from後面的表對應連...

怎樣實現財務自由的夢想呢,怎樣實現財務自由的夢想呢?

一邊學習工作外可以接單的技能,一邊發展副業,讓副業比主業更賺錢,然後以每年至少年化10 的利息去理財,10 很好找 這三點都很重要 怎樣實現財務自由 普通人如何能夠實現財務自由 其實,從2.9億的資料來說,普通人基本 如何讓自己變得很有錢 如果你想變得有錢,就要學會利用槓桿,花最小的錢賺取更多的錢,...