通过连接 7 个表创建 SQL 视图

Creating SQL view by joining 7 Tables

我想通过连接 7 个表来创建一个视图。我也创建了,但它没有显示我用来加入的真实表中的任何数据。

一开始我只通过连接 2 个表来创建视图。它工作正常并显示数据,

CREATE VIEW tbi_dd_detail_view AS
SELECT 
    d.dd_metric_config_id,
    d.metric_name,
    d.keywords,
    d.domain_id,
    d.is_active,
    c.dd_query_id,
    c.datasource_id,
    c.query,
    c.virtual_query_name
FROM
    tbi_dd_config_master d
        JOIN
    tbi_dd_custom_query_config c ON d.dd_metric_config_id = c.dd_metric_config_id  

示例数据:

我为 7 个表创建视图的方式类似。它创建了,但没有显示任何数据

CREATE VIEW tbi_dd_detail_view AS
    SELECT 
        d.dd_metric_config_id,
        d.metric_name,
        d.keywords,
        d.domain_id,
        d.is_active,
        d.created_by,
        d.created_date,
        c.dd_query_id,
        c.datasource_id,
        c.query,
        c.virtual_query_name,
        v.dd_dataview_id,
        v.dataview_id,
        b.dd_dashboard_id,
        b.dashboard_id,
        r.dd_report_id,
        r.report_id,
        r.report_type_name,
        r.virtual_report_name,
        t.dd_table_view_id,
        t.data_source_id,
        t.table_view_id,
        t.virtual_table_name,
        w.dd_webservice_id,
        w.password,
        w.username,
        w.virtual_webservice_name,
        w.webservice_url
    FROM
        tbi_dd_config_master d
            JOIN
        tbi_dd_custom_query_config c ON d.dd_metric_config_id = c.dd_metric_config_id
            JOIN
        tbi_dd_dataview_config v ON d.dd_metric_config_id = v.dd_metric_config_id
            JOIN
        tbi_dd_dashboard_config b ON d.dd_metric_config_id = b.dashboard_id
            JOIN
        tbi_dd_report_config r ON d.dd_metric_config_id = r.dd_metric_config_id
            JOIN
        tbi_dd_table_view_config t ON d.dd_metric_config_id = t.dd_metric_config_id
            JOIN
        tbi_dd_webservice_config w ON d.dd_metric_config_id = w.dd_metric_config_id  

我搜索了一些链接并尝试了不同的方法来创建视图,但不幸的是我得到了相同的结果

CREATE VIEW tbi_dd_detail_view AS
    SELECT 
        d.dd_metric_config_id,
        d.metric_name,
        d.keywords,
        d.domain_id,
        d.is_active,
        d.created_by,
        d.created_date,
        c.dd_query_id,
        c.datasource_id,
        c.query,
        c.virtual_query_name,
        v.dd_dataview_id,
        v.dataview_id,
        b.dd_dashboard_id,
        b.dashboard_id,
        r.dd_report_id,
        r.report_id,
        r.report_type_name,
        r.virtual_report_name,
        t.dd_table_view_id,
        t.data_source_id,
        t.table_view_id,
        t.virtual_table_name,
        w.dd_webservice_id,
        w.password,
        w.username,
        w.virtual_webservice_name,
        w.webservice_url
    FROM
        tbi_dd_config_master d,
        tbi_dd_custom_query_config c,
        tbi_dd_dataview_config v,
        tbi_dd_dashboard_config b,
        tbi_dd_report_config r,
        tbi_dd_table_view_config t,
        tbi_dd_webservice_config w
    WHERE
        d.dd_metric_config_id = c.dd_metric_config_id
            AND d.dd_metric_config_id = v.dd_metric_config_id
            AND d.dd_metric_config_id = b.dashboard_id
            AND d.dd_metric_config_id = r.dd_metric_config_id
            AND d.dd_metric_config_id = t.dd_metric_config_id
            AND d.dd_metric_config_id = w.dd_metric_config_id  

有人可以找出并帮助我哪里做错了吗?

加入 3 个表并输出:

没有 table 定义,很难给出选项建议。

首先,您应该加入两个 table 来创建视图,并在加入条件中一次添加另一个 table 并测试视图在哪个点无法显示预期结果.

您也可以使用 LEFT JOIN 并在查询末尾添加 group by 子句,看看会发生什么。.

示例:

使用 LEFT JOIN 并在查询末尾附加 group by d.dd_metric_config_id