SQL聯合查詢語句
A表字段stuid,stunameB表字段bid,stuid,score,coursename,statusCREATE 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#.statusFROM A# JOIN B# ON (A#.stuid = B#.stuid AND B#.status = 1)WHERE NOT EXISTS ( SELECT 1 FROM B# sub WHERE A#.stuid = * AND * = 1 AND * > B#.score )stuid score coursename status----------- ----------- ---------- -----------1 99 數學 12 88 數學 14 66 語文 14 66 數學 1(4 行受影響)注: stuid = 3的,2門課程的 status 都為0,因此無數據顯示。
stuid = 4 的,2門課程都等于 max(score), 因此顯示出2行數據。
sql語句兩表聯查-兩表聯查該怎樣寫查詢Sql語句?做一個簡單的論壇,
把兩個表都選上,選擇你要的字段,然后在條件里面把關聯的字段條件加上,例如下面: "SELECT *, thor, *hdate, *e_Type, FORM article,type WHERE *e_Type = " 這里 是你type表里面欄目的id,對應你article表里面的Article_Type。
*, thor, *hdate分別是文章的標題,作者,發布時間,這條語句并不一定可用,要對照你的表結構。如果有不清楚可以給我發信息,能把你的表結構發出來最好。
SQL語句兩表聯查
可以用謂詞或聯結實現: 連接實現: select * from b join a on *=* where a.b=21 聯結實現的條件是兩表id來自同一值域,表示意義相同.在連接時其實兩可以作成一個表的: 也就是 id,a.b,a.c,b.b.b.c 但由于空值的問題,導致了部分依賴所以才會拆分成兩個表的. 使用謂詞實現: select * from b where id in (select id from a where a.b=21) 這個可以實現兩表id來自同一值域,但表示意義不同的情況.也就是說兩表中的id有無關性. 相比較而言,連接的方式更快一些,但這種情況是兩表來自同一值域,且意義相同,如果不是這種情況,可能得不到你正確的值的.而使用謂詞不管意義是否相同,都可以得到正確的值. 玩數據庫必須知道這兩個表是否具有相關性,也就是設計時的意義,否則優化詞句什么的都沒有辦法去做的! 有幾種方式可以實現你的這個需求. 1. 使用表 關聯 SELECT * FROM 表2 JOIN 表1 ON ( 表* = 表1.列1 ); 2. 使用 IN SELECT * FROM 表2 WHERE ID IN ( SELECT 列1 FROM 表1); 3.使用 EXISTS SELECT * FROM 表2 WHERE EXISTS ( SELECT 1 FROM 表1 WHERE 表* = 表1.列1 );select * from t2 left join t1 on * = t1.列1 where t1需要啥條件 and t2需要啥條件select * from 表2 where 某列 in (select 列1 from 表1) and id=1。
SQL語句 聯合查詢
create table c select *,aname,bid,bnamefrom a,bwhere *=*;aid,aname,bid,bname1 a 1 aa1 a 2 bb1 a 3 cc2 b 4 dd2 b 5 ee要轉換成的目標表格:aid,aname,bid1,bname1,bid2,bname2,bid3,bname31 1 1 aa 2 bb 3 dd2 b 4 dd 5 ee 0 nullselect aid,aname,max(case px when 1 then bid else 0 end ) bid1,max(case px when 1 then bname else null end) bname1,max(case px when 2 then bid else 0 end ) bid2,max(case px when 2 then bname else null end) bname2,max(case px when 3 then bid else 0 end ) bid3,max(case px when 3 then bname else null end) bname3from( select (select count(1) from c where aid=* and aname=* and bid<*) px,aid,aname,bid,bname from c as cc ) as mgroup by aid,aname;。
SQL聯合查詢
select *me,*MsgId,*lity,*,*,*,*me,*,*,*lity into cfrom EmployDetails a left join EmployMsg bon *MsgId = *這個是創建一個臨時表c來記錄你要的記錄。
如果想要的不是臨時表 則需要創建一個表先,把想要的這些字段都列出來,insert into c(想要的列名)(select *me,*MsgId,*lity,*,*,*,*me,*,*,*lity from EmployDetails a left join EmployMsg bon *MsgId = *)似乎是這樣。
。你試試,因為我沒測試所以不敢確定。