例如,我有两个表,分别是id,age,status和height。还有一个表RESULT,我需要合并到该表。
*id age status*
1 15 1
2 16 1
3 17 0
*id height*
1 160
2 170
3 180
结果表为:
*id age height*
1 15 160
我需要将ID为1的表1中的ID,高度,年龄插入到Result表中,状态为1。
我怎么写类似的东西
Merge into Result
USING(Select ... from Table1
join Table2 on Table1.id=Table2.id where status=1)
When Not Matched THEN
Insert into Result VALUES(Table1.id,age,height)
我需要获得
*id age height*
1 15 160
2 16 170
那么我该如何实现将在结果中找到ID = 2的用户的合并
表并插入并且不会插入id = 1的用户,因为它已经在表中了?
答案 0 :(得分:1)
尝试一下:
MERGE INTO RESULT R USING (
SELECT
T1.ID,
T1.AGE,
T1.STATUS,
T2.HEIGHT
FROM
TABLE1 T1
JOIN TABLE2 T2 ON T1.ID = T2.ID
WHERE
STATUS = 1
) DATAA
ON ( R.ID = DATAA.ID )
WHEN NOT MATCHED
THEN INSERT (
ID,
AGE,
HEIGHT )
VALUES (
DATAA.ID,
DATAA.AGE,
DATAA.HEIGHT )
干杯!
答案 1 :(得分:0)
下面是需要一起运行整个查询的sql查询
插入结果
从t1.Id = t2.Id的Table1 t1内部联接Table2 t2中选择t1.Id,t1。年龄,t2.height,其中t1.status = 1