给出两个MySQL表:
member: id, status, name, type
serial: id, serial, description
我想选择member.status =“2”的ID和serial = ID为指定值的任何序列。
换句话说,给定一个ID,我想找到与ID相关联的不同序列号,然后返回具有该序列号的所有ID - 但仅限于它们的状态为“2”。
我认为我不想要JOIN或UNION。我可能想选择serial.id,其中serial = ANY(选择serial其中serial.id =“value”) - 但我无法弄清楚如何要求member.status =“2”。
我该怎么做?
感谢。
答案 0 :(得分:0)
我认为以下内容应该有效。使用子查询查找与指定serial
关联的所有id
个数字,然后查找id
位于子查询结果中的所有serial
;在外部查询中添加内部联接以将status
与id
匹配。
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';