❶ sql如何把兩張表的數據合並起來
1.兩個不同的表進行查詢,需要把結果合並,
比如table1的列為 id, user_id, type_id,pro_id;
table2的列為 id,user_id,collect_id;分別如下圖所示
table1:
總結:其實就是把對慧旁應的列補充到沒有該列的表中,在例子中就是把collect_id補充到table1中,
把type_id,pro_id補充到table2中。
❷ 怎麼把SQL多個表關聯合並成一個表
用union all+group by。多少ID都沒關系吧,除非你說的是有上千個表。。。
selectID,sum(qty1)qty1,sum(qty2)qty2,sum(qty3)qty3(
selectID,qty1,0qty2,0qty3from表1unionall
selectID,0qty1,qty2,0qty3from表2unionall
selectID,0qty1,0qty2,qty3from表3)ast1
groupbyID
❸ SQL多表合並
你的表名不能都是1,2,3,4,5排下來的吧?
建總表還不如建視圖
create view view_all
as select * from table1 union all
select * from table2 union
……
❹ sql一個庫裡面有一百張表 怎麼合並在一張表裡面呢大神求助。。。我小白 麻煩懂得 說詳
最簡單的回答:這一百張表的表名,一般你是得老老實實一個一個將它們碼出來,按SQL語句的規則編寫語句。
1、分橫和聯接和縱向聯接,兩種方式。
2、橫向聯接情況下,每個表中的記錄都要有一個特定的其它表中有的記錄,以保證它們的信息能對位串在一起。比如做絕嫌每個表中的記錄都有一個純手學生證編號,而且這個編號原則上得是唯一的。
select*from
表1
JOIN表2ON表2.學生證編號=表1.學生證編號
JOIN表3ON表3.學生證編號=表1.學生證編號
JOIN表4ON表4.學生證編號=表1.學生證編號
……
3、縱向聯接情況下宏櫻,每個表中的欄位(或要列出的欄位都得相同),以保證它們縱向信息能對位。
selectA1,A2,A3from表1
union
selectA1,A2,A3from表2
union
selectA1,A2,A3from表3
union
selectA1,A2,A3from表4
union
……
❺ SQL 兩張表合並 (兩張表的列都相同)
可以參考下面的方法:
1、第一種,用一張臨時表,把所有數據都放在一張表裡
INSERT INTO QunList SELECT * FROM QunList89,90,91,92;
再在QunList中查詢
2、第二種,用 UNION ALL方式查詢
SELECT * FROM QunList89
UNION ALL
SELECT * FROM QunList90;
(5)sql無限表合並擴展閱讀:
SQL參考語句
刪除表
drop table tabname--這是將表連同表中信息一起刪除但是日誌文件中會有記錄
刪除信息
delete from table_name-這是將表中信息刪除但是會保留這個表
增加列
Alter table table_name add column_name column_type [default 默認值]--在表中增加一列,[]內的內容為可選項
❻ sql如何將多個表合並成一個表
--復雜點的方法,
DECLARE @startTime DATETIME --開始的時間
DECLARE @endTime DATETIME --結束的時間
--比如我要得到1月到2月的數據
SET @startTime = '2014-01-01 00:00:00.000' --從新年第一天開始
SET @endTime = GETDATE() --一直到當前時間
--准備創建表
--根據月份創建
DECLARE @mi INT
--(這里必須要是開始時間和結束時間在一年之內的情況,如果不是在一年以內則要另外考慮,懶得寫)
SET @mi = MONTH(@endTime) - MONTH(@startTime) + 1 --用結束月份減去開始月份,得到總共要創建幾個月份表(加上當前月份)
--PRINT @mi
WHILE @mi >0
BEGIN
DECLARE @tableName VARCHAR(6) --月份表名
DECLARE @sql NVARCHAR(1000)
SET @tableName = '2014'
IF @mi<10
BEGIN
SET @tableName = @tableName + '0'
END
SET @tableName = @tableName + CAST(@mi AS VARCHAR)
IF NOT EXISTS (SELECT * FROM sysobjects WHERE [name] = @tableName AND [type] = 'U')
BEGIN
--如果當前月份表不存在,創建當前月份表
SET @sql = 'CREATE TABLE '+@tableName + ' (MId INT PRIMARY KEY IDENTITY(1,1))'
PRINT @sql
--執行
--EXECUTE sp_executesql N@sql
END
DECLARE @dayName VARCHAR(8) --天表名
WHILE CONVERT(VARCHAR(6),@endTime,112)=@tableName --確定當前時間是否是當前月的
BEGIN
SET @sql = ''
SET @dayName = CONVERT(VARCHAR(8),@endTime,112)
SET @sql = 'INSERT INTO '+@tableName +' VALUES SELECT * FROM ' + @dayName
PRINT @sql
--執行
--EXECUTE sp_executesql N@sql
SET @sql = ''
SET @endTime = DATEADD(DAY,-1,@endTime)
END
SET @mi = @mi - 1 --月份減一
/*
------------------------------------------------------------
CREATE TABLE 201402 (MId INT PRIMARY KEY IDENTITY(1,1))
INSERT INTO 201402 VALUES SELECT * FROM 20140219
INSERT INTO 201402 VALUES SELECT * FROM 20140218
INSERT INTO 201402 VALUES SELECT * FROM 20140217
INSERT INTO 201402 VALUES SELECT * FROM 20140216
INSERT INTO 201402 VALUES SELECT * FROM 20140215
INSERT INTO 201402 VALUES SELECT * FROM 20140214
INSERT INTO 201402 VALUES SELECT * FROM 20140213
INSERT INTO 201402 VALUES SELECT * FROM 20140212
INSERT INTO 201402 VALUES SELECT * FROM 20140211
INSERT INTO 201402 VALUES SELECT * FROM 20140210
INSERT INTO 201402 VALUES SELECT * FROM 20140209
INSERT INTO 201402 VALUES SELECT * FROM 20140208
INSERT INTO 201402 VALUES SELECT * FROM 20140207
INSERT INTO 201402 VALUES SELECT * FROM 20140206
INSERT INTO 201402 VALUES SELECT * FROM 20140205
INSERT INTO 201402 VALUES SELECT * FROM 20140204
INSERT INTO 201402 VALUES SELECT * FROM 20140203
INSERT INTO 201402 VALUES SELECT * FROM 20140202
INSERT INTO 201402 VALUES SELECT * FROM 20140201
CREATE TABLE 201401 (MId INT PRIMARY KEY IDENTITY(1,1))
INSERT INTO 201401 VALUES SELECT * FROM 20140131
INSERT INTO 201401 VALUES SELECT * FROM 20140130
INSERT INTO 201401 VALUES SELECT * FROM 20140129
INSERT INTO 201401 VALUES SELECT * FROM 20140128
INSERT INTO 201401 VALUES SELECT * FROM 20140127
INSERT INTO 201401 VALUES SELECT * FROM 20140126
INSERT INTO 201401 VALUES SELECT * FROM 20140125
INSERT INTO 201401 VALUES SELECT * FROM 20140124
INSERT INTO 201401 VALUES SELECT * FROM 20140123
INSERT INTO 201401 VALUES SELECT * FROM 20140122
INSERT INTO 201401 VALUES SELECT * FROM 20140121
INSERT INTO 201401 VALUES SELECT * FROM 20140120
INSERT INTO 201401 VALUES SELECT * FROM 20140119
INSERT INTO 201401 VALUES SELECT * FROM 20140118
INSERT INTO 201401 VALUES SELECT * FROM 20140117
INSERT INTO 201401 VALUES SELECT * FROM 20140116
INSERT INTO 201401 VALUES SELECT * FROM 20140115
INSERT INTO 201401 VALUES SELECT * FROM 20140114
INSERT INTO 201401 VALUES SELECT * FROM 20140113
INSERT INTO 201401 VALUES SELECT * FROM 20140112
INSERT INTO 201401 VALUES SELECT * FROM 20140111
INSERT INTO 201401 VALUES SELECT * FROM 20140110
INSERT INTO 201401 VALUES SELECT * FROM 20140109
INSERT INTO 201401 VALUES SELECT * FROM 20140108
INSERT INTO 201401 VALUES SELECT * FROM 20140107
INSERT INTO 201401 VALUES SELECT * FROM 20140106
INSERT INTO 201401 VALUES SELECT * FROM 20140105
INSERT INTO 201401 VALUES SELECT * FROM 20140104
INSERT INTO 201401 VALUES SELECT * FROM 20140103
INSERT INTO 201401 VALUES SELECT * FROM 20140102
INSERT INTO 201401 VALUES SELECT * FROM 20140101
*/
❼ 在SQL中,合並多個表中的數據有哪3種方法
合並多個表中的數據的方法有三種:
聯合(Union)-合並多個數據表中的行
子查詢-將一個查詢包含到另一個查詢中
聯接-合並多個數據表中的列
❽ SQL 批量合並多個表的問題
建個視圖把三個表的內沒嘩容如察腔合到一個視圖渣衫中,這樣三個表中的內容如果改變,視圖中的內容同時改變。
比如想建的視圖名為 STABC
creat view STABC as
select * from A1
union
select * from B1
union
select * from C1
這樣想查所有信息時只查視圖就可以了
select * from STABC
❾ SQL怎麼合並表
select * into 新表名 from (select * from T1 union all select * from T2)
這個語句可以實現將合並的數據追加到一個新表中。
不合並重復數據 select * from T1 union all select * from T2
合並重復數據 select * from T1 union select * from T2
兩個表,表1 表2
如果要將 表1的數據並入表2用以下語句即可
insert into 表2(欄位1,欄位2) select 欄位1,欄位2 from b1
注意,必須把欄位名全部寫清楚,而且不允許把自動編號進去寫進去,要合並自動編號欄位必須重寫一個演算法一條一條記錄地加進去
1 insert into b1 select * from b2
2 select * into newtable from (select * from b1 union all select * from b2)