所以我有一个查询给了我三个数字,然后我想从另一个表中查找这些数字,并获得与它们相关联的名称和网址。
所以我有一个我查询的产品表,它提供了这三个数字,但由于有3个数字,内部联接不起作用。
所以我基本上只是试图查找同一个表中3个数字的名称和网址,并想知道实现这一目标的最有效方法是什么。
$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个查询。我想知道这是否只能在一个,甚至可能是2个。
答案 0 :(得分:1)
很难说没有看到一些表格结构和示例数据,但是这样的事情可能会起作用(其中othertable
是你从中提取网址和名称的另一个表的名称):
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的形式退出。