实际上,我试图从id为219且id与查询匹配的列中获取结果。
SELECT * FROM `table1` WHERE `id` IN ('219', SELECT `id` FROM `table2` WHERE `parent_id`='219')
我想使用ID219和查询在一起,这样查询会拉一些更多的id。但这对我不起作用。
sqyvllje1#
根据我的经验, OR 子句在中没有得到很好的优化 MySQL . 另一个选项是在 IN 包含“219”的子句
OR
MySQL
IN
SELECT * FROM table1 WHERE id IN ( SELECT id FROM table2 WHERE parent_id = 219 UNION SELECT '219')
v09wglhw2#
您可以尝试此版本:
SELECT * FROM table1 WHERE id = 219 OR id IN (SELECT id FROM table2 WHERE parent_id = 219);
你的问题有一种递归层次查询的味道,在这里我们可能会进行某种连接。如果你需要更复杂的输出,那么你应该更新你的问题。
2条答案
按热度按时间sqyvllje1#
根据我的经验,
OR
子句在中没有得到很好的优化MySQL
. 另一个选项是在IN
包含“219”的子句v09wglhw2#
您可以尝试此版本:
你的问题有一种递归层次查询的味道,在这里我们可能会进行某种连接。如果你需要更复杂的输出,那么你应该更新你的问题。