Php MySQL优化long-IN语句
我有一个名为PARENTTABLE id的项目表 我还有一个名为CHILDTABLE id,parent_id,。。。 带有对PARENTTABLE中的项的引用列 如何编写一个查询,只从PARENTTABLE中获取在CHILDTABLE中肯定有引用的项 目前我正在使用:Php MySQL优化long-IN语句,php,mysql,Php,Mysql,我有一个名为PARENTTABLE id的项目表 我还有一个名为CHILDTABLE id,parent_id,。。。 带有对PARENTTABLE中的项的引用列 如何编写一个查询,只从PARENTTABLE中获取在CHILDTABLE中肯定有引用的项 目前我正在使用: SELECT * FROM PARENTTABLE WHERE id IN (SELECT parent_id FROM CHILDTABLE) 这是一种可接受的方法,还是有一种更优化的方法,因为随着时间的推移,子表中会有许多
SELECT * FROM PARENTTABLE WHERE id IN (SELECT parent_id FROM CHILDTABLE)
这是一种可接受的方法,还是有一种更优化的方法,因为随着时间的推移,子表中会有许多条目,使得IN语句非常长。存在一个版本
SELECT DISTINCT PARENTTABLE.*
FROM PARENTTABLE
INNER JOIN CHILDTABLE ON CHILDTABLE.parent = PARENTTABLE.id
选择*
从父表p
哪里有
挑选*
从儿童桌
其中parent_id=p.id
下面是演示尝试以下内容:
SELECT * from parent where id in (Select distinct parentid from child)
没有进一步的信息,这是一个通用的SQL问题。解决方案将是sql语句中的联接。