當前位置:首頁 » 編程語言 » sql聯合欄位查詢
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql聯合欄位查詢

發布時間: 2022-11-07 12:55:47

『壹』 sql聯合查詢語句

A表欄位stuid,stuname
B表欄位bid,stuid,score,coursename,status

CREATE TABLE A#(
stuid INT,
stuname VARCHAR(10)
);

CREATE TABLE B# (
bid INT,
stuid INT,
score INT,
coursename VARCHAR(10),
status INT,
);

INSERT INTO A#
SELECT 1, '張三' UNION ALL
SELECT 2, '李四' UNION ALL
SELECT 3, '王五' UNION ALL
SELECT 4, '趙六'
;

INSERT INTO B#
SELECT 1, 1, 100, '語文', 0 UNION ALL
SELECT 2, 1, 99, '數學', 1 UNION ALL
SELECT 3, 2, 88, '語文', 0 UNION ALL
SELECT 4, 2, 88, '數學', 1 UNION ALL
SELECT 5, 3, 77, '語文', 0 UNION ALL
SELECT 6, 3, 77, '數學', 0 UNION ALL
SELECT 5, 4, 66, '語文', 1 UNION ALL
SELECT 6, 4, 66, '數學', 1
;

SELECT
A#.stuid,
B#.score,
B#.coursename,
B#.status
FROM
A# JOIN B#
ON (A#.stuid = B#.stuid AND B#.status = 1)
WHERE
NOT EXISTS (
SELECT
1
FROM
B# sub
WHERE
A#.stuid = sub.stuid
AND sub.status = 1
AND sub.score > B#.score
)

stuid score coursename status
----------- ----------- ---------- -----------
1 99 數學 1
2 88 數學 1
4 66 語文 1
4 66 數學 1

(4 行受影響)

註:
stuid = 3的,2門課程的 status 都為0,因此無數據顯示。
stuid = 4 的,2門課程都等於 max(score), 因此顯示出2行數據。

『貳』 SQL 聯合查詢

按樓主你的問題,應該用union,也就是micro0369和xp_lovely 的回答。

但是兩張表的列並不完全一致,表b中沒有sex欄位,所以從表b中取的數據sex欄位默認取null,sql語句如下:
select * from a where age =20
union
select *,null from b where age = 20

『叄』 sql聯合查詢語句(兩張表)是什麼

sql聯合查詢語句(兩張表)是:

select A.ID,A.VALUE,A.TYPE,A.NAME,B.KEY,B.ID,B.VALUE,B.NAME
min(VALUE),max(VALUE) from A left join B on A.ID = B.ID
where B.NAME="你輸入的名字"
and B.VALUE > (select min(VALUE) from B where NAME="你輸入的名字"))
and B.VALUE < (select min(VALUE) from B where NAME="你輸入的名字"));

『肆』 什麼是sql聯合查詢 簡單點告訴我

關聯查詢吧

是根據表裡面相同的欄位查詢出你想要的數據的
比如說:A、B兩個表,分別是
學號 姓名 性別
1 張三 男
2 李四 不男不女
3 王五 女
4 周六 男

學號 總成績
1 200
3 250
4 300

A表和B表的學號都是唯一的主鍵,那麼就可以根據學號關聯,將你想要的兩個表的數據關聯起來
語句如:
select a.學號,a.姓名,a.性別,b,總成績 from A a inner join B b on a.學號 = b.學號
這句話會輸出A表和B表裡面關於兩表學號相等項的姓名、性別、總成績三個欄位,裡面那個不男不女的沒有考試,所以沒有總成績,輸出應該是:
學號 姓名 性別 總成績
1 張三 男 200
3 王五 女 250
4 周六 男 300
具體關聯有外關聯和關聯兩個概念,上面的例子只能給你很簡單的,你上網多找點例子看,再自己多建幾個表多打幾遍,慢慢就找到規律了,不難
祝你成功!

『伍』 問題是這樣的:關於sql 一個表中兩個不同的欄位聯合起來查詢。

可以在表裡新加一個欄位:fullName值就是lastName+foreName 搜索的時候直接搜索fullName就行了。假如在sql語句里直接加的話,效率不好。很多在sql里做計算的語句,都可以在表裡添加輔助欄位,在插入記錄時就把值計算出來,這樣可以提高查尋的效率。

『陸』 sql聯合查詢

連接的欄位名稱沒有寫錯吧,我看你這個SQL沒有問題的啊,你在試試下面的,

--方法一
selecta.*,
b.name
frominfoa
innerjoinstuffbona.num=b.num
wherea.num=101

--方法2
selecta.*,
b.name
frominfoa,
stuffb
wherea.num=b.num
anda.num=101

『柒』 sql多表聯合查詢步驟是什麼

有內聯左聯右聯具體欄位需要表名加上欄位也可以把表名as為一個簡單的單詞
例如表a有欄位:學號課程表b有欄位:學號姓名查詢每個學生姓名和對應的課程
內聯:selecta.課程,b.姓名fromainnerjoinbona.學號=b.學號
左聯:selecta.課程,b.姓名fromaleftjoinbona.學號=b.學號
右聯:selecta.課程,b.姓名fromarightjoinbona.學號=b.學號
內聯是表a和b內容都匹配的才顯示
左聯是匹配左邊這張表內容後面on和where條件匹配的話顯示左邊這張表的所有數據
右聯和左聯一樣理解

『捌』 sql聯合查詢語句(兩張表)

sql聯合查詢語句(兩張表)是:

select A.ID,A.VALUE,A.TYPE,A.NAME,B.KEY,B.ID,B.VALUE,B.NAME
min(VALUE),max(VALUE) from A left join B on A.ID = B.ID
where B.NAME="你輸入的名字"
and B.VALUE > (select min(VALUE) from B where NAME="你輸入的名字"))
and B.VALUE < (select min(VALUE) from B where NAME="你輸入的名字"));

『玖』 sql 兩表聯合查詢

select * from a,b where a.file1=b.file1

SQL里只是判斷兩個欄位等不等,和排序沒關系,一樣的值自然會被查出來。
如果上面的SQL查不出你想要的結果,那隻有三種情況,一是a表和b表確實沒有file1相同的數據,二是,兩個表的定義不同,所以無法比較(比如一個是number,一個是varchar2,且varchar2里存的不是數字),三是,兩個表的file1都是字元串,但一個是varchar2,一個是char,因為char會自動補空格,所以可能導致查不出來。