我有一个包含visit_date字段的webform,以及至少一个必须填充的时间选择visit_time_1、visit_time_2和visit_time_3字段,它们不能有相同的时间。
在提交时,我想检查另一个用户是否已经在任何visit_date、visit_time_2和visit_time_3字段中提交了相同的visit_time_1、visit_time_2和visit_time_3字段,如果它们不是null (例如,我需要知道visit_time_1=visit_time_2等)。
因此,我查询具有EAV模型的webform_submission_data,因此我尝试实现找到这里的解决方案。到目前为止,我要问的是这个
SELECT DISTINCT sid
FROM webform_submission_data wsd
WHERE wsd.webform_id = 'book_visit_form'
AND sid IN (SELECT sid FROM webform_submission_data wsd2
WHERE wsd2.value = '2022-10-20'
AND wsd2.name = 'visit_date')
AND (
sid IN (SELECT sid FROM webform_submission_data wsd3
WHERE wsd3.value IN ('15:00:00','16:00:00','17:00:00')
AND wsd3.name = 'visit_time_1')
OR sid IN (SELECT sid FROM webform_submission_data wsd4
WHERE wsd4.value IN ('15:00:00','16:00:00','17:00:00')
AND wsd4.name = 'visit_time_2')
OR sid IN (SELECT sid FROM webform_submission_data wsd5
WHERE wsd5.value IN ('15:00:00','16:00:00','17:00:00')
AND wsd5.name = 'visit_time_3')
)
;因此,我的问题是,我的逻辑是否正确,还是应该修改查询中的某些内容,以获得所需的结果。
发布于 2022-09-29 19:16:23
通过使用AND wsd3.name LIKE 'visit_time_%',您可能可以将三个或d查询缩减为一个
https://drupal.stackexchange.com/questions/313155
复制相似问题