【问题标题】:Joining to tables/columns specified by query results加入查询结果指定的表/列
【发布时间】:2019-05-31 02:56:03
【问题描述】:

也许我没有搜索正确的术语,因为我没有找到其他问题/答案:this。

是否可以连接到查询结果中指定的表/列?我对在其他表中指定的对象进行了查询,我可以创建一个包含所有表/列的表。

示例

Table_1

        Col1        Col2        Col3
        999         HTML        001
        998         HTML        002
        997         CSS         001
        996         CSS         002
        995         CSS         003
        994         C#          001

Table_2 - 表/列表

        Col1        Col2        Col3
        HTML        T_HTML      C_HTML_ID
        CSS         T_CSS       C_CSS_ID
        C#          T_C#        C_C#_ID

Table_3 - T_HTML(但可以是 T_CSS、T_C# 等)

        C_HTML_ID        Col2
        001              blah
        002              blah
        003              blah

那么有可能以某种方式做这样的事情吗?

SELECT
    *
FROM
    table_1
    JOIN table_2
        ON table_2.Col1 = table_1.Col2
    JOIN <<table_2.Col2>>
        ON <<table_2.Col2>>.<<Col3>> = table_1.Col3

【问题讨论】:

  • 您无法加入列。你加入表格。你这样做的预期结果是什么?
  • 不,这是不可能的。您应该考虑重新设计您的数据库模型。这看起来是个糟糕的设计
  • 很遗憾,我只是一只举报猴子。

标签: sql oracle join


【解决方案1】:

不能这样加入。 请在此https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/ 中查看 join 的工作原理,以便更好地理解。

【讨论】:

【解决方案2】:

你可以直接加入table_1和table_3。

select * 
from tab1 t1
join tab3 t2 on t1.Col3 = t2.C_HTML_ID
where t1.Col2 = 'HTML';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-22
    • 2013-12-14
    • 2015-09-08
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多