【发布时间】:2019-02-19 16:09:54
【问题描述】:
我正在尝试通过左连接两列来从两个表创建视图:t1.recipient_email = t2.username 或 t1.created_by = t2.id。如下面的伪代码所示,我希望第一个 t2.name 是收件人姓名,第二个 t2.name 是发件人姓名。我想不出实现这一目标的正确方法。
CREATE VIEW emailsent_log_view
(id_email_que_log, date_sent, recipent_email, recipient_name, send_status, sender_name)
AS
SELECT
t1.id,
t1.date_send,
t1.recipient_email,
t2.name, --recipient_name: corresponds with t1.recipient_email = t2.username
t1.send_status,
t2.name --sender_name: correspond with t1.created_by = t2.id
FROM email_que_log AS t1
LEFT JOIN user_account as t2
ON t1.recipient_email = t2.username
OR t1.created_by = t2.id
【问题讨论】:
-
你为什么想要一个视图?
-
我想要一个视图,这样“Grocery crud”之类的应用程序可以更轻松地从单个视图而不是多个表中获取数据
-
我怀疑应用程序通常会发现这两种方法同样简单。在我看来,MySQL 中的视图几乎没有任何用处
标签: mysql sql join view left-join