Sql 如何从具有大行的表中选择数据,如column1%column2

Sql 如何从具有大行的表中选择数据,如column1%column2,sql,select,Sql,Select,我有一个240 000行的表格产品。 我想从此表中选择数据,其中idproduct=idproductcomponent Output生成一个包含3列的表,因此在不同的列中。 始终idproducttype1的idproductcomponent为0,idproducttype2的idproductcomponent,3与idproducttype1的idproduct相同 佩拉塞,你能和我分享一下这个选择的想法吗 假设您的数据库是SQL Server(您不说它是哪一个),则查询可能如下所示:

我有一个240 000行的表格产品。 我想从此表中选择数据,其中
idproduct=idproductcomponent

Output生成一个包含3列的表,因此在不同的列中。 始终
idproducttype
1的
idproductcomponent
为0,
idproducttype
2的
idproductcomponent
,3与
idproducttype
1的
idproduct
相同

佩拉塞,你能和我分享一下这个选择的想法吗


假设您的数据库是SQL Server(您不说它是哪一个),则查询可能如下所示:

select
  a.name,
  b.name,
  c.name
from t a
left join t b on b.idproductcomponent = a.idproduct and b.idproducttype = 2
left join t c on c.idproductcomponent = a.idproduct and c.idproducttype = 3
where a.idproducttype = 1
  and a.idproduct = 11163 -- parameter you are searching for
要提高此查询的性能,可以添加索引:

create index ix1 on t (idproductcomponent);

数据库是什么?预期结果是什么?加入同一个表
,其中idproduct=idproductcomponent