1
您好(我希望对不起我的英文不好,在开始)数据选择表名,选择从
我有两个表:tbl1
和tbl2
;两者具有相同的结构,但是如果来自不同来源的数据集,我不能混合它们。
在另一个表tbl3
我有dataid
和datasource
。 我想要做的是从源链接表中选择数据。
伪我尝试生产:
SELECT
tbl3.dataid,
tbl3.datasource,
SEL_TBL.important_data,
SEL_TBL.another_thing,
SEL_TBL.something_completly_different
FROM
tbl3
LEFT JOIN
(SWITCH tbl3.datasource
CASE 'tbl1':
tbl1 AS >> SEL_TBL
CASE 'tbl2':
tbl2 AS >> SEL_TBL
)
ON
SEL_TBL.dataid = tbl3.dataid
我需要的结果,其中包含:important_data
,another_thing
当然something_completly_different
从 “switch叙述” 选择表。
什么现在的工作:
SELECT
tbl3.dataid,
tbl3.datasource,
(
CASE
WHEN tbl3.datasource ='tbl1'
THEN
tbl1.important_data
ELSE
tbl2.important_data
END
) important_data
FROM
tbl3
LEFT JOIN
tbl2
ON
tbl2.dataid = tbl3.dataid
LEFT JOIN
tbl1
ON
tbl1.dataid = tbl3.dataid
在此查询我得到dataid
,datasource
和imporatn_data
的结果。我可以为每一个领域重复整个案例块,但也许还有更文明的方法。
哦还有一两件事:tbl1.dataid和tbl2.dataid可以得到相同的值(这就是为什么我不能混用表)
如果我认为正确'COALESCE'会给我第一个NOT NULL值。如果没有给出'datasource',我会得到NULL。它仍然有很多代码可以编写,但更具可读性,应该在我免除时运行。需要/值得去尝试,谢谢:) – Anielka
@Anielka - 你的欢迎,祝你好运 – Hogan