实际上我正在尝试从id为219且id与查询匹配的列中获取结果。
SELECT *
FROM `table1`
WHERE `id` IN ('219', SELECT `id` FROM `table2` WHERE `parent_id`='219')
我想使用id 219并一起查询,因此查询将提取更多的ID。但它不适合我。
答案 0 :(得分:3)
您可以尝试此版本:
SELECT *
FROM table1
WHERE id = 219 OR id IN (SELECT id FROM table2 WHERE parent_id = 219);
您的问题具有递归分层查询的风格,我们可能会在某种程度上进行连接。如果您需要更复杂的输出,那么您应该更新您的问题。
答案 1 :(得分:1)
根据我的经验,OR
条款未在MySQL
中得到很好的优化。另一种选择是在IN
子句下创建子查询以包含'219',也像
SELECT * FROM table1 WHERE id IN (
SELECT id FROM table2 WHERE parent_id = 219 UNION SELECT '219')