假设有两个表,即product和product_status
这是产品表的结构
-------------------------------------------------
| ID | PRODUCT_NAME | PRODUCT_DESC |
-------------------------------------------------
| 1 | abc | abc desc |
-------------------------------------------------
| 2 | xyz | xyz desc |
-------------------------------------------------
这是product_status表的结构
-------------------------------------------------
| ID | PRODUCT_ID | PRODUCT_STATUS |
-------------------------------------------------
| 1 | 1 | status 1 |
-------------------------------------------------
| 2 | 1 | status 2 |
-------------------------------------------------
如果我通过php(codeigniter)进行查询,那么它将显示这样的数据。
$this->db->where('ID',1);
$query = $this->db->get('product');
$product = $query->row();
echo $product->PRODUCT_NAME;
但是我的问题是如何从product_status表中获取该特定产品ID的状态,而无需执行其他查询?我的意思是我想要一个查询,该查询将获取一条记录(因为id是唯一的),并将产品表中的产品数据以及product_status表中的产品状态显示为像这样的obejct数组-
$products = $product->PRODUCT_STATUS;
所以我可以遍历$ products并打印状态。
foreach ($products as $p) {
echo $p;
}
是否可以不进行其他查询?
答案 0 :(得分:0)
$sql = sprintf("SELECT p.*, ps.PRODUCT_STATUS FROM product p LEFT JOIN product_status ps ON(p.ID = ps.PRODUCT_ID) WHERE p.ID=%d", $product_id);
$query = $this->db->query($sql);
$product = $query->row();