gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 15:05:02 24 4
gpt4 key购买 nike

我有六个表:t1、t2、t3、t4、t5、t6。我还有一个主表:main_table。共有 7 张 table !

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

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

如果用户搜索“汽车”,那么 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

我的问题是,我应该这样做吗?这是我应该在这里加入的方式,还是使用左加入?有没有比数组更快的方法?

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

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

谢谢

最佳答案

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

关于php - LEFT JOIN 或 REGULAR JOIN,以及如何将 MySql 表与数组进行比较?需要表现!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2334656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com