mysql - 从多个表和字符串中选择

标签 mysql arrays string count expressionengine

我正在尝试获取查询的“总结果”,但有点难以理解它并且不断遇到错误。这是我的 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

检查sqlfiddle

关于mysql - 从多个表和字符串中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17106706/

相关文章:

用于匹配两个或三个空格的 Python 正则表达式

MYSQL微服务架构之主键策略

php - 组合或交叉多个 MySQL 命令

mysql - sten 百分位数 t 分数的数据库标准化

arrays - 在 MATLAB 中高效计算加权距离

php - 从 print json_encode 添加逗号

java - 多个变量的返回和编辑[JAVA]

java - 用字符串替换字符串中的特定字符?

android - 图像不是从存储为 imagepath 的 mysql 加载的

string - Kotlin - 是否有一个基本函数可以用引用字符串中的多个字符串替换多个字符串?