首页 > 解决方案 > MySQL Query 与另一个表的状态检查

问题描述

此查询涉及三个表。

表格1:

app_id app_name menu_id
1 大应用 1
2 小应用 2
3 应用程序 2

表2:

menu_id 菜单标题
1 菜单1
2 菜单2

表3:

用户身份 app_id_list
1 1,2,3,4,5
2 1,3,5

所以我想获取app_namemenu_title然后添加另一列(user_status,其中 1=on,0=off)来验证app_id是否显示在给定用户的app_id_list中。user_id = 2的结果将是:

app_name 菜单标题 用户状态
大应用 菜单1 1
小应用 菜单2 0
应用程序 菜单2 1

到目前为止,我得到的 SQL 语句是:

SELECT Table1.app_name, t2.menu_title
FROM Table1
INNER JOIN Table2 AS t2 ON (t2.menu_id = Table1.menu_id)

不知道如何从 Table3 中找到最后一列数据。有什么想法吗?

标签: mysqlsql

解决方案


回顾以下讨论后:

在数据库列中存储分隔列表真的那么糟糕吗?

我通过创建和扩展 Table3 解决了这个问题,其中app_id_list中的每个值现在都有自己的行。更快,可以与另一个 JOIN 链接。


推荐阅读