因此,我有一个查询,该查询为我提供了三个数字,然后我想从另一个表中查找这些数字,并获取与它们关联的名称和网址。

所以我有一个要查询的产品表,该表为我提供了这三个数字,但是由于有3个数字,内部联接将无法工作。

因此,我实质上只是想从同一张表中查找3个数字的名称和url,并想知道实现此目的的最有效方法。

$qry = mysqli_query($this->con,"SELECT * FROM products WHERE product_id=$this->id");
$row = mysqli_fetch_assoc($qry);
$main = $row['main_id'];
$cat = $row['categories_id'];
$sub = $row['sub_cat_id'];


因此,我可以分别对每个数字进行查询,但是总共有4个查询。我想知道这是否可以在一个或什至两个时间内完成。

最佳答案

在没有看到某些表结构和示例数据的情况下很难确定,但是类似这样的方法可能有效(其中othertable是要从中提取URL和名称的另一个表的名称):

select p.mail_id,
p.categories_id,
p.sub_cat_id,
o1.url mail_id_url,
o1.name mail_id_name,
o2.url categories_id_url,
o2.name categories_id_name,
o3.url sub_cat_id_url,
o3.name sub_cat_id_name
from products p
join othertable o1 on o1.mail_id = p.mail_id
join othertable o2 on o2.categories_id = p.categories_id
join othertable o3 on o3.sub_cat_id = p.sub_cat_id
where p.product_id = $this->id


假设您要查找的每个id的记录都在othertable中退出。

关于php - mysql的高级多重连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35616149/

10-09 15:10