加入mySQL表时,某些行是不同的

时间:2014-11-16 04:24:00

标签: php mysql

我在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']

我做错了什么?

1 个答案:

答案 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."'";