sql關聯查詢
A. sql 兩個表的數據進行關聯查詢
查詢2個表然後對比唯一的主鍵,對比表名sheet1,sheet2
SELECT * FROM sheet1 LEFT JOIN sheet2 ON sheet1.`列名` = sheet2.`列名`
B. 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行數據。
C. 關聯 SQL 查詢語句怎麼寫
select 名字 from a,b
where a.id = b.aid
and b.名字 = "bob"
你說的太亂了 給你個類似形式,自己補充吧
a.id = b.aid就是把a,b兩個表相同的列關聯起來,然後再找b表中名字為bob的 也就是and後面的條件
D. sql多表關聯查詢能用哪幾種方法寫
樓主使用的是子查詢,子查詢局限性較大,只能顯示第一張表的欄位。你可以這樣寫
SELECT * FROM biz.coursecomment a,so.sodetail b,so.somaster c
where a.sono=b.sono and b.sono=c.sono and c.TeacherNO='100199' and b.IsStudentComment='1' AND IsTeacherComment='1' and a.ToCustomerNO='100199'
這樣寫就避免了各種的子查詢。當然,你還可以寫成join的形式。join的層次更分明,代碼如下:
SELECT * FROM biz.coursecomment a
join so.sodetail b
on a.sono=b.sono
join so.somaster c
on c.sono=b.sono
where c.TeacherNO='100199' and b.IsStudentComment='1' AND IsTeacherComment='1' and a.ToCustomerNO='100199'
如果不懂,可以追問
E. sql 關聯查詢!
先建立關系,TI和T2的ID連起來,然後建立查詢,select T1.ID, T1.NAME,T2.JYS from T1, T2
F. sql同表聯合查詢
createTABLEtest(idint,atimedatetime,aaaint,btimedatetime,bbbint)
INSERTINTOdbo.test
(id,
atime,
aaa,
btime,
bbb
)
select
1,'2013-07-01',2,'2013-07-02',3
UNIONALL
SELECT
2,'2013-07-02',5,'2013-07-03',7
UNIONALL
SELECT
3,'2013-07-01',4,'2013-07-02',5
UNIONALL
SELECT
4,'2013-07-02',3,'2013-07-03',6
--SELECT*FROMtest
SELECTa.[time],SUM(aaa),SUM(bbb)
FROM
(
SELECTatimeAS[time],aaa,0ASbbb
FROMdbo.test
UNIONALL
SELECTbtimeAS[time],0ASaaa,bbb
FROMdbo.test
)a
GROUPBYa.[time]
-----結果
2013-07-0100:00:00.000 6 0
2013-07-0200:00:00.000 8 8
2013-07-0300:00:00.000 0 13
1、你的7.2號的bbb結果估計寫錯了,是8
2、因不知道你具體數據類型和具體庫,我使用的是datetime類型,類型如果有誤,你可以自己修改
G. 如何sql三張表關聯查詢
三張表關聯查詢
使用場景:A\B\C 三張表,現在要查詢並展示A表和C表中的某些欄位,但是A、C兩表沒有相同欄位,無法關聯,此時有B表恰好有兩個欄位,一個欄位和A表一個欄位相同,一個欄位和C表一個欄位相同,我們稱B表為「中間表」,因此通過B表把A、C表關聯起來
SELECT A1,A2,C1,C2 --展示A表中的A1\A2欄位和C表中的C1\C2
FROM B --中間表
INNER JOIN A ON A.A1 = B.B1 --A表中的與B表中相同的欄位
INNER JOIN C ON C.C1 = B.B1 --C表中的與B表中相同的欄位
where xxxxx ---條件你自己按照需求來加,沒有條件就不寫where了
H. sql多表關聯查詢
用SELECT對多表關聯進行查詢。
I. 如何使用SQL兩個表關聯查詢,如下圖
SELECTa.*,isnull(b.N,'0')N
FROM[tableA]aleftjointableBb
ona.id=b.id
union
SELECTa.id,a.name,isnull(b.M,'0')M,a.N
FROM[tableB]aleftjointableAb
ona.id=b.id
J. SQL兩個資料庫關聯查詢
select * from [資料庫1].dbo.[表1] where 欄位='?' union
select * from [資料庫2].dbo.[表2] where 欄位='?' 表示把查詢的結果合並顯示,上面那個有些問題,就試下這個吧。這個是要求兩個表的結構式一樣的 或者是要查詢的欄位結構是一樣的就可以