首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从两个不使用其中一个的sql视图中进行选择

从两个不使用其中一个的sql视图中进行选择
EN

Stack Overflow用户
提问于 2017-09-14 18:45:07
回答 2查看 22关注 0票数 1

我有一个sql视图,这不是我的代码:

代码语言:javascript
复制
SELECT
    `view_combined_rev_data`.`date` AS `date`,
    `view_combined_rev_data`.`book_title` AS `book_title`,
    `view_combined_rev_data`.`marketplace` AS `marketplace`,
    `view_combined_rev_data`.`amazon_kdp_avg_list_price` AS `amazon_kdp_avg_list_price`,
    `view_combined_rev_data`.`amazon_kdp_royalty_type` AS `amazon_kdp_royalty_type`,
    `view_combined_rev_data`.`amazon_kdp_revenue_in_usd` AS `amazon_kdp_revenue_in_usd`,
    `view_combined_rev_data`.`amazon_kdp_royalty_in_usd` AS `amazon_kdp_royalty_in_usd`,
    `view_combined_rev_data`.`amazon_kdp_paid_downloads` AS `amazon_kdp_paid_downloads`,
    `view_combined_rev_data`.`amazon_kdp_free_downloads` AS `amazon_kdp_free_downloads`,
    `view_combined_rev_data`.`amazon_ku_pages_read` AS `amazon_ku_pages_read`,
    `view_combined_rev_data`.`amazon_ku_revenue_in_usd` AS `amazon_ku_revenue_in_usd`,
    `view_combined_rev_data`.`create_space_revenue_in_usd` AS `create_space_revenue_in_usd`,
    `view_combined_rev_data`.`create_space_royalty_in_usd` AS `create_space_royalty_in_usd`,
    `view_combined_rev_data`.`create_space_paperbacks_sold` AS `create_space_paperbacks_sold`,
    (
        (
            `view_combined_rev_data`.`amazon_kdp_revenue_in_usd` + `view_combined_rev_data`.`amazon_ku_revenue_in_usd`
        ) + `view_combined_rev_data`.`create_space_revenue_in_usd`
    ) AS `daily_total_revenue`,
    (
        (
            `view_combined_rev_data`.`amazon_kdp_royalty_in_usd` + `view_combined_rev_data`.`create_space_royalty_in_usd`
        ) + `view_combined_rev_data`.`amazon_ku_revenue_in_usd`
    ) AS `daily_total_royalty`
FROM
    `view_combined_rev_marketplace_data` `view_combined_rev_data`

我的问题很简单:为什么在这行中使用view_combined_rev_marketplace_data。我在其他地方找不到使用它的代码,所以我可以简单地删除它吗?

代码语言:javascript
复制
FROM
    `view_combined_rev_marketplace_data` `view_combined_rev_data`
EN

回答 2

Stack Overflow用户

发布于 2017-09-14 18:50:27

这是您的FROM子句:

代码语言:javascript
复制
FROM `view_combined_rev_marketplace_data` `view_combined_rev_data`

第一个名称view_combined_rev_marketplace_data是存在于数据库中的表或视图(假设是视图)的名称。

第二个名称view_combined_rev_data是一个表别名。这就是表/视图在查询中的引用方式。

我建议您使用表/视图别名,它们是表/视图名称的缩写,如下所示:

代码语言:javascript
复制
FROM `view_combined_rev_marketplace_data` vcrmd

然后,对列的引用将如下所示:

代码语言:javascript
复制
SELECT vcrmd.`date` AS `date`,
       vcrmd.`book_title` AS `book_title`,
       . . .

这将进一步简化为:

代码语言:javascript
复制
SELECT vcrmd.`date`,
       vcrmd.`book_title`,
       . . .

在这种情况下,列别名(在as之后提供的名称)是不必要的,因为它缺省为列名。但请注意,本地编码样式可能建议使用显式列别名。

票数 1
EN

Stack Overflow用户

发布于 2017-09-14 18:51:59

代码语言:javascript
复制
FROM
    `view_combined_rev_marketplace_data` `view_combined_rev_data`

这不是两个视图,而是一个别名为view_combined_rev_data的视图view_combined_rev_marketplace_data

当使用别名引用表/视图/函数时,必须在语句中使用别名,而不是对象的名称。通常,别名是为了提供对SQL对象的更短或更具可读性的引用。在这种情况下,它相对较长。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46216997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档