【问题标题】:join to view table convert加入查看表格转换
【发布时间】:2019-06-07 13:31:02
【问题描述】:

我想将左连接转换为view table

Following is my SQL

 SELECT d.account_no, COALESCE(d.deposits, 0) - COALESCE(w.withdrawals, 0) 
   AS balance
  FROM (SELECT account_no, SUM(deposit_amount) AS deposits
   FROM deposits
  GROUP BY account_no) d
  LEFT JOIN (SELECT account_no, SUM(withdraw_amount) AS withdrawals
       FROM withdraws
       GROUP BY account_no) w ON w.account_no = d.account_no

我想创建view 表。

我怎样才能做到这一点?有人可以帮忙吗?

【问题讨论】:

  • 您是在问如何创建视图吗? dev.mysql.com/doc/refman/8.0/en/create-view.html
  • 合并两张表然后有条件地汇总存款和取款可能会更好。
  • 我想隐蔽left join查看表格
  • 视图语法很简单你有什么问题? (您不能将视图创建为 select 语句的一部分)
  • 如何创建视图表。我想要同样的结果

标签: php mysql sql laravel-5 mysqli


【解决方案1】:

创建视图(一次)并在左连接中使用

CREATE  VIEW my_view AS 
SELECT account_no, SUM(withdraw_amount) AS withdrawals
       FROM withdraws
       GROUP BY account_no
;


SELECT d.account_no, COALESCE(d.deposits, 0) - COALESCE(w.withdrawals, 0) 
 AS balance
FROM (SELECT account_no, SUM(deposit_amount) AS deposits
 FROM deposits
GROUP BY account_no) d
LEFT JOIN my_view  w ON w.account_no = d.account_no 

【讨论】:

  • 第一个错误:CREATE my_view VIEW AS SELECT account_no, SUM(withdraw_amount) AS 取款 FROM 取款 GROUP BY account_no
  • 第二个错误:#1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“my_view VIEW AS SELECT account_no, SUM(withdraw_amount) AS 提款”附近使用正确的语法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-07
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多