我正在尝试获取查询的“总结果”,但有点难以理解它并且不断遇到错误。这是我的 table 设置:
exp_channel_data table
entry_id field_id_17
36 1
43 6
42 5
65 7
exp_freeform_form_entries_2 table
form_field_8 user_id
40 6
35 1
38 1
exp_matrix_data table
entry_id col_id_20
36 [35] [test-course] Test Course
36 [38] [test-course-2] Test Course 2
43 [40] [health-safety] Health & Safety
43 [35] [test-course] Test Course
43 [38] [test-course-2] Test Course 2
65 [40] [health-safety] Health & Safety
我需要执行一个查询来检查exp_matrix_data
内的“类(class)”(col_id_20)
是否作为“已完成的类(class)”(form_field_8)存在
内 exp_free_form_entries_2
(用 [] 之间的数字链接)。然后我需要输出“未完成类(class)”的“计数”
因为多个“成员(member)”可以参加类(class),所以我需要从登录用户那里检查“类(class)”。
每个用户都作为两个不同的 ID 存储在 exp_channel_data
中 - “用户配置文件 ID”(entry_id)
,其中“类(class)”被分配给用户,并且“唯一成员(member) ID”(field_id_17)
。
我将动态输入“用户个人资料 ID”,我通常这样做:
WHERE entry_id = '{logged_in_id}'
因此,如果我要运行查询来查看“唯一成员(member) ID”(field_id_17)
的值 6
是否具有“用户个人资料 ID”43
有任何已完成的“未完成的类(class)”,这将导致 2
“未完成的类(class)”,因为仅完成了 1
类(class):
43 [40] [health-safety] Health & Safety
关系
entry_id [exp_channel_data] =>entry_id [exp_matrix_data]
field_id_17 [exp_matrix_data] => user_id [exp_freeform_form_entries_2]
col_id_20 [exp_matrix_data] => form_field_8 [exp_freeform_form_entries_2]
最佳答案
根据您提供的规范,我希望此查询能让您更接近您想要的:
select d.*
from exp_channel_data ch
inner join exp_freeform_form_entries_2 ff
on ch.field_id_17 = ff.user_id
inner join exp_matrix_data d
on d.col_id_20 like Concat('[', ff.form_field_8, ']%')
where ch.entry_id = 36
关于mysql - 从多个表和字符串中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17106706/