mysql - SQL 语句:与联系人相关的日历事件
问题描述
我正在开发一个 SQL 查询来让 HeidiSQL 显示日历条目和连接的联系人。
约会包含在 vtiger_activity 表中,联系人包含在 vtiger_contactdetails 表中。通过表“vtiger_crmentity”存在连接。
SELECT a.subject
, a.activitytype
, a.date_start
, a.due_date
, a.time_start
, a.time_end
, d.firstname
, d.lastname
FROM vtiger_activity a
LEFT
JOIN vtiger_crmentity c
ON c.crmid = a.activityid
LEFT
JOIN vtiger_contactdetails d
ON d.contactid = c.crmid
WHERE a.due_date >= '2019-05-18' AND a.date_start <= '2019-05-23'
查询结果:它显示了时间段中的日期,但在应该显示联系人的列中只有 NULL 我需要它用于 Android 应用程序的查询。我期望名字和姓氏,因为数据存在。
有谁知道我的错误在哪里?
永远感谢你的帮助
解决方案
您LEFT JOIN
的 s 顺序错误。如果您想要名称,它们来自详细信息表,并且应该是FROM
. 您还需要将条件移至ON
.
像这样的东西:
SELECT d.firstname, d.lastname, a.subject, a.activitytype
a.date_start, a.due_date, a.time_start, a.time_end
FROM vtiger_contactdetails d LEFT JOIN
vtiger_crmentity c
ON d.contactid = c.crmid LEFT JOIN
vtiger_activity a
ON c.crmid = a.activityid AND
a.due_date >= '2019-05-18' AND
a.date_start <= '2019-05-23';
推荐阅读
- r - 可以关注多列时过滤行
- tcl - 如何知道 Tcl 中变量的数据类型?
- node.js - 无法使用代码运行器插件在 Visual Studio 代码中运行节点 js 代码
- r - Openstreetmap / iGraph - 从 center_bbox osmar 对象创建一个 center_bbox / 使其高效
- javascript - lambda函数中的响应
- javascript - VueJS 数据返回数组不与模板反应
- python - 未知字符串到原始字符串
- python - Pygame - 2键停止喷射
- jenkins-pipeline - 如何使用 Jenkins 从 groovy 脚本中执行放置在共享库资源文件夹中的文件,该脚本位于同一共享库中
- css - MatFormField 包含 Textarea 高度 100%