如何在没有子选择和连接的情况下将lieferanten_nr(来自artikel)替换为名称(来自lieferanten)?
我必须识别lieferanten的名字,并用artikel替换lieferanten_nr。
1.Table
select bezeichnung, lieferanten_nr from artikel;
2.Table
select lieferanten_nr, name from lieferanten;
而不是lieferanten_nr必须有名称
答案 0 :(得分:2)
鉴于没有连接或子查询的人为限制,这是我可以使用UNION
得到的最接近的(假设没有子查询意味着没有相关的子查询):
SELECT bezeichnung,
name
FROM (
SELECT bezeichnung,
LEAD( name ) IGNORE NULLS OVER ( PARTITION BY lieferanten_nr
ORDER BY name NULLS FIRST ) AS name
FROM (
SELECT lieferanten_nr,
bezeichnung,
NULL AS name
FROM artikel
UNION ALL
SELECT lieferanten_nr,
NULL,
name
FROM lieferanten
)
)
WHERE bezeichnung IS NOT NULL
AND name IS NOT NULL;
如果忽略无连接的限制,那么它变得非常简单:
select a.bezeichnung,
l.name
from artikel a
INNER JOIN
lieferanten l
ON ( a.lieferanten_nr = l.lieferanten_nr );