【发布时间】:2021-12-24 06:12:25
【问题描述】:
我正在尝试使用 UNION 从临时表和永久表中获取记录。 表 1 - Cust Permanent
cid marital_status profession gender mobile current_status temp_id
1 1 6 Male 984343435 1 1
表 2 - 客户温度
cid marital_status gender mobile current_status perm_id
1 1 Male 984343435 1 1
另外,尝试从 master 执行 join 以根据 id 获取 decriction。执行联合查询以从永久表中获取所有记录,我面临的问题是临时表将没有专业,但永久表具有并且联合工作列数应该相同。 我尝试过的查询:
select cid,ma.master.desc, pr_master.desc,gender,mobile,current_status from cust_permament
left join ma_master on ma_master.id = cust_permament.marital_status
left join pr_master on pr_master.id = cust_permament.profession
UNION
select cid,ma.master.desc as marital_status, '' desc,gender,mobile,current_status from cust_temp
left join ma_master on ma_master.id = cust_temp.marital_status
这将返回 2 行,其中一个为空职业,另一个为永久表中的职业。 但是我需要来自 permamnet 表的专业记录
预期结果
cid desc desc gender mobile current_status
1 Single Teacher Male 984343435 1
实际输出
cid desc desc gender mobile current_status
1 Single Teacher Male 984343435 1
1 Single Male 984343435 1
【问题讨论】:
-
那么问题到底是什么?
-
需要单条记录而不是2条
-
UNION按行合并表格,JOIN按列合并表格。我无法理解您要达到的目标,您可以将所需的输出作为示例吗? -
更新您的问题,添加适当的数据样本和预期结果作为表格文本
-
在第二个查询中使用
NULL as profession
标签: sql sql-server