从两个具有多个条件的MySQL表中进行选择的最佳方法

从两个具有多个条件的MySQL表中进行选择的最佳方法,mysql,select,join,subquery,Mysql,Select,Join,Subquery,给定两个MySQL表: member: id, status, name, type serial: id, serial, description 我想选择ID,其中member.status=2和serial=any serial,其中ID为指定值 换句话说,给定一个ID,我想找到与ID相关联的不同序列号,然后返回所有具有该序列号的ID,但前提是它们的状态为2 我不认为我想要加入或联合。我可能想选择serial.id where serial=ANYselect serial where

给定两个MySQL表:

member: id, status, name, type
serial: id, serial, description
我想选择ID,其中member.status=2和serial=any serial,其中ID为指定值

换句话说,给定一个ID,我想找到与ID相关联的不同序列号,然后返回所有具有该序列号的ID,但前提是它们的状态为2

我不认为我想要加入或联合。我可能想选择serial.id where serial=ANYselect serial where serial.id=value-但我不知道如何要求member.status=2

我该怎么做


谢谢。

我认为以下方法应该有效。使用子查询查找与指定id关联的所有序列号,然后查找序列号在子查询结果中的所有id;在外部查询中放置一个内部联接,以将状态与id匹配


样本数据和期望的结果将有助于传达您正在尝试做的事情。例如,什么的id?成员或序列?很遗憾,它找到了0条记录,其中至少应该有两条记录。仅从子查询中可以得到什么?我发现了问题。有一个失败案例,其中序列号在某些情况下为空,导致虚假匹配。它现在运行良好;非常感谢。
SELECT m.id
  FROM member m
  JOIN serial s
    ON s.id = m.id
  WHERE s.serial IN
    (SELECT serial
      FROM serial
      WHERE id = :search_id) ids
    AND m.status = '2';