Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建SQL查询以从名义上形成的数据库返回值_Java_Mysql_Sql_Archetypes - Fatal编程技术网

Java 创建SQL查询以从名义上形成的数据库返回值

Java 创建SQL查询以从名义上形成的数据库返回值,java,mysql,sql,archetypes,Java,Mysql,Sql,Archetypes,我正在尝试从约会数据库返回报告。我附上了我当前的sql查询,我遇到的困难是,当我“加入”我的客户联系人表ie时 join contacts on (customer.entity_id = contact.contact_id and contacts.arch = 'contact.phonenumber') join contact_detail on (contact_detail.contact_id = contacts.contact_id and contact_deta

我正在尝试从约会数据库返回报告。我附上了我当前的sql查询,我遇到的困难是,当我“加入”我的客户联系人表ie时

 join contacts on (customer.entity_id = contact.contact_id and contacts.arch = 'contact.phonenumber')
    join contact_detail on (contact_detail.contact_id = contacts.contact_id and contact_detail.lookup = 'mobile')
我会立即丢失任何在该表和详细信息表中没有条目的客户机,我更希望实现的是,如果客户机没有联系人条目,它会为这些字段返回null。 即 在我加入之前,它可能已经消失了

Name  Time note    Mobile
DAVID 8pm haircut  0412656865
Julie 8pm style
Daniel 8pm Colour  0412533535
但是加上这些台词

DAVID 8pm haircut  0412656865
Daniel 8pm Colour  0412533535
它排除了Julie,因为她没有联系人电话号码

这是一个简单的问题。我希望Julie返回空值

该系统使用一个mysql数据库和一个java原型驱动的前端 因此,我们使用一个实体表、act表、参与者表,然后使用一些细节表和查找表

实际的sql查询是

select 
p.activity_start_time
, p.activity_end_time
, p.activity_start_time AS start_time
, p.activity_end_time as end_time
, a.status
, a.description AS appointmentnote
, e.name as patientname
, e.description AS patientdescription
, customer.name as customername
, customer.description as customerdescription
, sd.name as schedule_name
, eAt.name as appointment_type
, mobile.description as Mobile
from acts a
join participations p on  
a.act_id=p.act_id and a.arch_short_name='act.customerAppointment' and 
p.act_arch_short_name='act.customerAppointment'
join entities e on p.entity_id=e.entity_id
join participations pAt on a.act_id=pAt.act_id and 
a.arch_short_name='act.customerAppointment' and 
pAt.arch_short_name='participation.appointmentType'
join entities eAt on pAt.entity_id=eAt.entity_id
left join entity_relationships er ON (er.target_id = e.entity_id
AND er.active_start_time <= date_add((date_format('2013-07-24',"%Y-%m-%d")), 
INTERVAL "00:00:00" HOUR_SECOND)
AND ((er.active_end_time >= date_add((date_format('2013-07-24',"%Y-%m-%d")), 
INTERVAL "23:59:59" HOUR_SECOND)) OR (er.active_end_time IS NULL)))
left join entities customer ON 
(customer.entity_id = er.source_id AND customer.arch_short_name = 'party.customerperson')

join contacts mobile on (mobile.party_id = customer.entity_id AND mobile.arch_short_name = 'contact.phoneNumber')
join contact_classifications mb_class on (mb_class.contact_id = mobile.contact_id AND mb_class.lookup_id = '120')

join participations schedule on 
a.act_id=schedule.act_id and schedule.arch_short_name='participation.schedule'
left join entities sd on 
(sd.entity_id = schedule.entity_id)
left outer join act_details d on 
a.act_id=d.act_id
where (p.activity_start_time<date_add((date_format('2013-07-24',"%Y-%m-%d")), 
INTERVAL "00:00:00" HOUR_SECOND)
and p.activity_end_time>date_add((date_format('2013-07-24',"%Y-%m-%d")), 
INTERVAL "23:59:59" HOUR_SECOND) or 
p.activity_start_time<date_add((date_format('2013-07-24',"%Y-%m-%d")), 
INTERVAL "00:00:00" HOUR_SECOND)
and p.activity_end_time>date_add((date_format('2013-07-24',"%Y-%m-%d")), 
INTERVAL "23:59:59" HOUR_SECOND) or 
p.activity_start_time>=date_add((date_format('2013-07-24',"%Y-%m-%d")), 
INTERVAL "00:00:00" HOUR_SECOND) and 
p.activity_end_time<=date_add((date_format('2013-07-24',"%Y-%m-%d")), 
INTERVAL "23:59:59" HOUR_SECOND)) and 
(schedule.activity_start_time<date_add((date_format('2013-07-24',"%Y-%m-%d")), 
INTERVAL "00:00:00" HOUR_SECOND) and 
schedule.activity_end_time>date_add((date_format('2013-07-24',"%Y-%m-%d")),
 INTERVAL "23:59:59" HOUR_SECOND) or 
schedule.activity_start_time<date_add((date_format('2013-07-24',"%Y-%m-%d")), 
INTERVAL "00:00:00" HOUR_SECOND) and 
schedule.activity_end_time>date_add((date_format('2013-07-24',"%Y-%m-%d")), 
INTERVAL "23:59:59" HOUR_SECOND) or 
schedule.activity_start_time>=date_add((date_format('2013-07-24',"%Y-%m-%d")), 
INTERVAL "00:00:00" HOUR_SECOND) and 
schedule.activity_end_time<=date_add((date_format('2013-07-24',"%Y-%m-%d")), 
INTERVAL "23:59:59" HOUR_SECOND)) and 
e.arch_short_name = 'party.patientpet' and 
customer.arch_short_name = 'party.customerperson'
and sd.name like CONCAT('GROOM','%')
order by p.activity_start_time, sd.name, a.act_id
选择
p、 活动开始时间
,p.活动结束时间
,p.活动开始时间作为开始时间
,p.活动结束时间作为结束时间
,a.地位
,a.任命说明
,e.名称为patientname
,例如,描述为患者描述
,customer.name作为customername
,customer.description作为customerdescription
,sd.name作为附表_name
,eAt.name作为约会类型
,mobile.description as mobile
从a幕开始
加入p上的参与者
a、 act\u id=p.act\u id和a.arch\u short\u name='act.customerappoition'和
p、 act_arch_short_name='act.CustomerAppoition'
在p.entity\u id=e.entity\u id上连接实体e
加入参与:按a.act\u id=pAt.act\u id和
a、 arch_short_name='act.CustomerAppoition'和
pAt.arch_short_name='participation.appointmentType'
连接实体eAt on pAt.entity\u id=eAt.entity\u id
左连接实体\u关系er ON(er.target\u id=e.entity\u id
和er.active\u start\u time=date\u add((日期格式('2013-07-24',%Y-%m-%d)),
间隔“23:59:59”小时(秒)或(er.active结束时间为空)
左键连接客户上的实体
(customer.entity\u id=er.source\u id和customer.arch\u short\u name='party.customerperson')
加入手机上的联系人(mobile.party\u id=customer.entity\u id和mobile.arch\u short\u name='contact.phoneNumber')
在上加入联系人分类mb_类(mb_类.contact_id=mobile.contact_id和mb_类.lookup_id='120')
按计划参加活动
a、 act_id=schedule.act_id and schedule.arch_short_name='participation.schedule'
左连接实体sd打开
(sd.entity\u id=schedule.entity\u id)
左外连接动作详细信息
a、 动作id=d.动作id
其中(p.activity\u start\u timedate\u add((日期格式('2013-07-24',%Y-%m-%d)),
间隔“23:59:59”小时(秒)或
p、 活动\u开始\u时间日期\u添加((日期格式('2013-07-24',%Y-%m-%d)),
间隔“23:59:59”小时(秒)或
p、 活动开始时间>=日期添加((日期格式('2013-07-24',%Y-%m-%d)),
间隔“00:00:00”小时(秒)和
p、 活动结束时间=日期添加((日期格式('2013-07-24',%Y-%m-%d”),
间隔“00:00:00”小时(秒)和
计划。活动\结束\时间试试看

或者(可以根据MySQL语法)


您想使用外部联接。请参阅。Michael给了我获取查询工作cheers mate所需的提示。尽管最后的更改是在((contact_detail.contact_id=contacts.contact_id或contact_detail.contact_id=null)和(contact_detail.lookup='mobile'或contact_detail.lookup为null))上添加联接联系人详细信息
join contact_detail on (contact_detail.contact_id = contacts.contact_id and (contact_detail.lookup = 'mobile' or contact_detail.lookup = null))
join contact_detail on (contact_detail.contact_id = contacts.contact_id and (contact_detail.lookup = 'mobile' or contact_detail.lookup is null))