Php 如何在UPDATE语句中使用内部联接?
我有两个mysql表,它们在数据库中通过descriptionId字段连接Php 如何在UPDATE语句中使用内部联接?,php,mysql,xhtml,Php,Mysql,Xhtml,我有两个mysql表,它们在数据库中通过descriptionId字段连接 dataTable.dataId dataTable.descriptionId dataTable.userId dataTable.value descriptionLookupTable.descriptionId descriptionLookupTable.descriptionName 在PHP中,我试图在dataTable.descriptionID=Gender和dataTable.userId=$\
dataTable.dataId
dataTable.descriptionId
dataTable.userId
dataTable.value
descriptionLookupTable.descriptionId
descriptionLookupTable.descriptionName
在PHP中,我试图在dataTable.descriptionID=Gender
和dataTable.userId=$\u会话['userId']
时更新字段:dataTable.value
例如,在descriptionLookupTable中:descriptionLookupTable.descriptionId=1
和descriptionLookupTable.descriptionName=Gender
。在数据表中:dataTable.descriptionID=1
我通过以下方式理解处理用户ID的部分:
"WHERE dataTable.userId = '" . $_SESSION['userId'] . "'";
但我不知道如何使用内部联接
以下查询不起作用
$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'] . "'";
错误消息是:未知列“字段列表”中的“性别”
descriptionLookupTable.descriptionName = Gender
Gender
在本例中是字符串文字,因此必须将其标记为字符串文字
descriptionLookupTable.descriptionName = 'Gender'
性别显然不是表中的一列。其中一个字段必须命名为性别,才能更新其内容 尝试更新表中的字段怎么样:):
试试这个
SET dataTable.Gender='…'
谢谢,但当我尝试它时,我在“字段列表”中得到错误消息:未知列“dataTable.Gender”。是的,我试过了,但得到了相同的答案。谢谢。不知道为什么会被否决。sql需要这些冒号才能工作,即使这不是QueryTanks中出现的第一个问题,但当我尝试使用它时,我在“field list”中得到错误消息:未知列“dataTable.value”。hmmm。为什么mysql会识别连接的dataTable.descriptionId,而不是dataTable.value。您确定字段的大小写和名称吗?你能把桌子的结构贴出来吗?就像phpmyadmin的输出一样,当你只将结构导出到screenoh时,一定要把性别放在冒号“性别”之间,正如VolkerK所说。这实际上是一个在排除列名称问题后会遇到的问题谢谢大家!Felix和Volkerk的想法组合成功了!以下mysql语句起作用:$query=“更新dataTable内部联接descriptionLookupTable ON dataTable.descriptionId=descriptionLookupTable.descriptionId和descriptionLookupTable.descriptionName='SEXT'设置dataTable.value='$SEXT'其中dataTable.user_id='”$_会话['user_id']。"'";实际上,我的上一条评论wrt user_id中有一个输入错误。下面是修复方法:$query=“更新dataTable内部连接描述符dataTable.descriptionId=descriptionLookupTable.descriptionId和descriptionLookupTable.descriptionName=”性别“设置dataTable.value=”性别“其中dataTable.userId=”$_会话['userId']。"'";
SET dataTable.value = '$gender' WHERE dataTable.user_id = '" . $_SESSION['user_id'] . "'";