如何在UPDATE语句中使用INNER JOIN?

时间:2014-01-14 15:49:53

标签: php mysql xhtml

我有2个mysql表,它们在数据库中通过descriptionId字段加入。

dataTable.dataId
dataTable.descriptionId
dataTable.userId
dataTable.value

descriptionLookupTable.descriptionId
descriptionLookupTable.descriptionName

在PHP中,我正在尝试更新字段:dataTable.value,dataTable.descriptionID = GenderdataTable.userId = $_SESSION['userId']

例如,在descriptionLookupTable中:descriptionLookupTable.descriptionId = 1descriptionLookupTable.descriptionName = Gender。在dataTable中:dataTable.descriptionID = 1

我理解使用以下内容处理userID的部分:

"WHERE dataTable.userId = '" . $_SESSION['userId'] . "'"; 

但我无法弄清楚如何使用INNER JOIN。

以下查询不起作用。

$query = "UPDATE dataTable
  INNER JOIN descriptionLookupTable
  ON dataTable.descriptionId = descriptionLookupTable.descriptionId
  AND descriptionLookupTable.descriptionName = Gender
  SET Gender = '$gender' WHERE dataTable.user_id = '" . $_SESSION['user_id'] . "'";

错误消息为:Unknown column 'Gender' in 'field list'

2 个答案:

答案 0 :(得分:1)

性别显然不是表格中的一列。其中一个字段必须命名为Gender才能更新其内容

尝试更新表格中的字段:):

SET dataTable.value = '$gender' WHERE dataTable.user_id = '" . $_SESSION['user_id'] . "'";

答案 1 :(得分:0)

descriptionLookupTable.descriptionName = Gender
在这种情况下,

Gender是字符串文字,因此您必须将其标记为

descriptionLookupTable.descriptionName = 'Gender'