我在两个不同的位置有两个 SQL 表,它们包含完全相同的字段,只是不同的数据(所有唯一的 SKU)。我想加入这些表并在结果上运行一个复杂的 WHERE 子句以用于记录目的。
我所拥有的东西有效,但它看起来非常多余(我来自这里的 C# 背景)。
select sku, catalogname, getDate()
from uswebdb.commerce.catalogproducts
where sku is not null
and (CategoryName is not null or ParentOID = 113)
and (sku not like '%[a-z]%')
union all
select sku, catalogname, getDate()
from ukwebdb.commerce.catalogproducts
where sku is not null
and (CategoryName is not null or ParentOID = 113)
and (sku not like '%[a-z]%')
有没有更简洁的方法来连接这两个表并产生相似的结果,或者这是最好的方法?选定的字段将始终相同,但在不久的将来,涉及的表数量和 where 子句的复杂性可能会增加。
我想理想情况下我希望看到这样的东西:
select sku, catalogname, getDate() from
uswebdb.commerce.catalogproducts
--magic join/union--
ukwebdb.commerce.catalogproducts
-- more joins...--
where sku is not null
and (CategoryName is not null or ParentOID = 113)
and (sku not like '%[a-z]%')
这在 SQL2008 中甚至可能吗?我真的只是想太多了吗?