mysql

时间:2016-02-25 00:46:26

标签: php mysql sql join

所以我有一个查询给了我三个数字,然后我想从另一个表中查找这些数字,并获得与它们相关联的名称和网址。

所以我有一个我查询的产品表,它提供了这三个数字,但由于有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个。

1 个答案:

答案 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的形式退出。