我在mySQL数据库中有两个不同的表,结构如下:
table_cart:
cart_id | item_id | quantity
----------------------------
00001 285 1
00002 482 2
00003 683 6
00004 627 1
table_products:
product_id | product_name | quantity
-------------------------------------------
285 some name 50
482 another name 40
683 one more name 35
627 yet another name 80
我想要显示的是table_cart(item_id和数量)中的两件事,以及table_products(名称)中的一件事。问题是,当它用我的代码抓取数量时,它从table_products中选择一个,这不是我需要的那个。我想我加入了表格时出了问题,但是我尝试了INNER,LEFT,RIGHT等等,但没有一个工作。
我的查询是这样的:
$product_rows = $this->query("
SELECT * FROM table_cart INNER JOIN table_products
ON table_cart.item_id=table_products.product_id
WHERE cart_id='".$cart_id."'"
");
然后我将其输出为:
$item_details = mysql_fetch_array($product_rows);
$item_details['item_id']
$item_details['name']
$item_details['quantity']
我做错了什么?
答案 0 :(得分:1)
您的join
没问题。问题是select *
以及两列具有相同名称的事实(两个表中都有quantity
)。
您应该明确列出您想要的列:
SELECT c.item_id, p.name, p.quantity
FROM table_cart c INNER JOIN
table_products p
ON c.item_id = p.product_id
WHERE cart_id='".$cart_id."'";