在JOIN查询中获取共享参数

时间:2013-09-27 21:47:46

标签: php mysql sql join primary-key

使用PHP,我得到以下查询:

"SELECT * 
 FROM `items` 
      JOIN `categories` 
         ON `items`.`category`=`categories`.`cat3` 
 WHERE `items`.`user_id` = '".$UID."'"

我正在尝试从关联数组中访问itemsid字段。问题是,$res['id']似乎在给我categories表的id。

如何更改代码以从items表中获取ID?

2 个答案:

答案 0 :(得分:1)

在sql语句中添加一个额外的列,例如

SELECT *,
       items.id AS `itemID`
FROM   ....

并访问它,

$res['itemID']

答案 1 :(得分:0)

您正在选择itemscategory两个表格中的每一列。这将使您无法访问两个表上具有相同名称的列。

在这些情况下,您应始终在select语句中使用aliases

SELECT `items`.`id` as item_id,...,`categories`.`id`,...
 FROM `items` 
      JOIN `categories` 
         ON `items`.`category`=`categories`.`cat3` 
 WHERE `items`.`user_id` = '".$UID."'"

您只需在...中为每个表添加所需的其余列。

如果您有其他具有相同名称的列,请不要忘记为它们创建别名。