MYSQL从子查询中选择列表中的项目

Joe*_*wis 2 mysql

提前感谢您提供的任何帮助.今天早上我被困在这个上几个小时,我搜索的任何内容似乎都没有帮助.

我将与客户端关联的帐户列表存储为我的数据库中的字符串,如下所示:

   | li.client_accounts   |
   +-----+----------------+
   |ID   |facility        |
   +-----+----------------+
   |23   |1010, 1020, 1025|
   +-----+----------------+
Run Code Online (Sandbox Code Playgroud)

我正在尝试从另一个数据库中选择约会,其中帐号在列表中,使用如下子查询:

    SELECT * FROM li_appointments.li_appointments
    where app_client_id in (select facility from li_client_accounts where id = 23)
Run Code Online (Sandbox Code Playgroud)

但是我的结果只显示了client_id为1010的约会,而忽略了其余的约会.为了让这个工作,我需要做什么?

Nad*_*adh 5

它不起作用,因为该IN子句需要一个字段列表.但是,在您的情况下,facility是一个逗号分隔值的字符串,而不是可查询列表.这是糟糕的设计.您需要使client_accounts表成为原子,如:

   | li.client_accounts   |
   +-----+----------------+
   |client_ID   |facility |
   +-----+----------------+
   |23   |1010|
   |23   |1015|
   |23   |1020|
   +-----+----------------+
Run Code Online (Sandbox Code Playgroud)