【发布时间】:2022-01-04 01:26:48
【问题描述】:
我已经写了这个查询:
select
person_number ,
elements,
batchid,
co_code
from
per_all_people_f papf,
elements_tab elements,
batch_tab batch,
company_det co,
where
papf.person_id = company_det.person_id
and elements.element_id = company_det.element_id
and batch.batchid = co.batchid
union all
select
person_number ,
elements.absence_name elements,
batchid,
co_code
from
per_all_people_f papf,
absence_tab elements,
batch_tab batch,
company_det co,
where
papf.person_id = company_det.person_id
and elements.absence_id =company_det.absence_id
and batch.batchid = co.batchid
这会返回如下输出:
person_number elements batchid co_code
1100928 Benefits 20209181 XYZ
1100928 Benefits 20208361 ARE
1100928 Benefits 92725378 FREELISTS
我可以调整查询,使输出看起来像 -
person_number elements batchid co_code
1100928 Benefits 20209181 XYZ
1100928 20208361 ARE
1100928 92725378 FREELISTS
即如果对于 person_number 1100928 元素的好处是重复的,那么它应该只出现在输出中一次而不是三次
【问题讨论】:
-
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI
JOIN语法-92 SQL 标准(差不多 30 年前),不鼓励使用它