如何解决在 mysql 中使用 join 和 DATEDIFF() 创建视图
我知道已经有人问过关于使用连接创建视图的问题,这很好,除了在这里我试图包含日期差异。
我有一张名为“appointments”的表和一张名为“bill”的表,带有 FK AppID。
我想创建一个视图,由 BillNo(Bill number)、PatientID 和 Date 组成
CREATE VIEW overdue_payments AS
SELECT bill.BillNo,appointment.AppID,appointment.AppDate
FROM bill,appointment
WHERE bill.AppID=appointment.AppID
AND DATEDIFF(AppDate,CURDATE())>30
使用和代码实现,但没有添加过期的测试日期:
CREATE VIEW overdue_payments2 AS
SELECT bill.BillNo,appointment
inner join appointment on bill.AppID=appointment.AppID
where DATEDIFF(AppDate,CURDATE())>30
然后我尝试使用内部联接,但收到“非唯一表”错误。
非常感谢任何帮助。
解决方法
您的第一个查询使用了长期弃用的逗号交叉连接语法:
FROM bill,appointment
WHERE bill.AppID=appointment.AppID
要将其更改为现代、显式的连接语法,您需要:
FROM bill
INNER JOIN appointment ON bill.AppID=appointment.AppID
但是您在帐单上留下了“,约会”,因此抱怨您试图在不提供别名的情况下两次加入约会。只需删除“,约会”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。