LEFT JOIN或REGULAR JOIN,以及如何将MySql表与数组进行比较?需要表现!

时间:2010-02-25 14:30:13

标签: php sql mysql html database

我有六个表:t1,t2,t3,t4,t5,t6。我还有一个主表:main_table。总计7个表格!

现在,我正在使用SOLR搜索分类广告,并将solr的结果放入数组中。数组结果是ID:nrs,我用它来匹配MySql中相同的ID:s。

MySql中所有表的第一列称为classified_id。

如果用户搜索“cars”,那么Solr将找到所有汽车分类,将id:s放入数组中,最后比较MySql主表以匹配表t1(即汽车表)中的所有内容,其中classified_id两个表都是一样的。

SOLR结果数组首先被内爆,然后:

SELECT * FROM classified, t1 WHERE classified.ad_id IN ('$solr_id_arr_imploded') AND classified.classified_id=t1.classified_id

我的问题是,这是我应该怎么做的?这是我应该在这里加入,还是使用LEFT JOIN?有没有更快的方法与数组进行比较?

如果没有汽车分类广告,则表格t1可能为空......

请记住,查询可能会变得非常长,例如,如果SOLR返回10000个匹配项,那么将返回一个10000个id号的数组,如下所示:bmw_m3_low_miles_8948939

由于

1 个答案:

答案 0 :(得分:1)

IN的替代方法是创建一个临时表,用ID填充它,并对其执行内部联接。确保其他表在classified_id上有索引。要比较选项use EXPLAIN