① sql三表聯合查詢
select * from tb1,tb2,tb3 where (tb1.id=tb2.id) and (tb2.id=tb3.id) and tb1.xx=xx
② 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類型,類型如果有誤,你可以自己修改
③ 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聯合查詢
rn=ROW_NUMBER() OVER(ORDER BY [u.userid] DESC)
rn是個什麼東西?是欄位名,是哪個表的欄位?
ROW_Number()是什麼東西?
OVER又是個什麼東?
⑤ SQL語句 聯合查詢
是二條結果 呀,因為你的查詢條件是a.aid=b.aid,取的是AID為1的記錄在b表中aid 都是1
⑥ SQL資料庫如何實現聯合查詢謝謝!
聯合查詢效率較高.以下例子來說明聯合查詢的好處
t1表結構(用戶名,密碼) userid int username varchar(20) password varchar(20)
1 jack jackpwd
2 owen owenpwd
t3表結構(用戶積分,等級) userid int jf int dj int
1 20 3
3 50 6
第一:內聯(inner join)
如果想把用戶信息,積分,等級都列出來.那麼一般會這樣寫
select * from t1 ,t3 where t1.userid = t3.userid 其實這樣的結果等同於select * from t1 inner join t3 on t1.userid=t3.userid
就是把兩個表中都存在userid的行拼成一行.這是內聯.但後者的效率會比前者高很多.建議用後者的寫法.
運行結果:userid username password userid jf dj
1 jack jacjpwd 1 20 3
第二:左聯(left outer join)顯示左表中的所有行
select * from t1 left outer join t3 on t1.userid=t3.userid
運行結果:userid username password userid jf dj
1 jack jackpwd 1 20 3
2 owen owenpwd NULL NULL NULL
第三:右聯(right outer join)顯示右表中的所有行
select * from t1 right outer join t3 on t1.userid=t3.userid
運行結果:userid username password userid jf dj
1 jack jackpwd 1 20 3
Null Null Null 3 50 6
第四:全聯(full outer join)顯示兩邊表中所有行
select * from t1 full outer join t3 on t1.userid=t3.userid
運行結果:userid username password userid jf dj
1 jack jackpwd 1 20 3
2 owen owenpwd NULL NULL NULL
Null Null Null 3 50 6
⑦ sql server聯合查詢
select a.*,inner join b.time on(a.id=b.id)
好像就是這么個
不知道 inner join 是不是這么寫
⑧ sql 聯合查詢
selectid,name,music,videofrom(
selectt1.id,t1.name,music,videofromt1leftjoint2
ont1.id=t2.id)t3
⑨ sql聯合查詢語句
時間長是應該是因為你沒有建立索引。而且語句沒有必要寫的那麼復雜。
下面的代碼即可:
insert into c select (a.姓名) 姓名,(SUBSTRING(b.登記時間,7,2))rq,(SUBSTRING(b.登記時間,9,2)+':'+SUBSTRING(b.登記時間,11,2)) 時間,'01' from b,a where b.編號=a.編號
⑩ 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行數據。