通过连接 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
。
我想通过连接 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
示例数据:
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
。