【发布时间】:2016-02-09 04:21:49
【问题描述】:
我正在尝试让这个 MySQL 代码工作,但它说 0 行受到影响。
UPDATE assessments, assessment_types
SET assessments.assessment_type_id = assessment_types.id
WHERE (assessment_types.description = "Skills Assessment" AND assessments.id = 2);
基本上我有 assesment_types 和 id 和 description 列,我只有 id 在 assessments.assessment_type_id
我需要更新 id。
我搜索并找不到我需要的东西。
谢谢!
表格数据: assessment_types 标识说明 1 知识评估 2 技能评估 3 个人信息 4 种天赋
表结构:
--
-- Table structure for table `assessments`
--
CREATE TABLE IF NOT EXISTS `assessments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8_bin NOT NULL,
`acronym` varchar(255) COLLATE utf8_bin NOT NULL,
`assessment_type_id` int(11) NOT NULL,
`language_id` int(11) NOT NULL,
`date_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`date_updated` date NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`),
KEY `assessment_type_id` (`assessment_type_id`),
KEY `language_id` (`language_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=2385 ;
--
-- Table structure for table `assessment_types`
--
CREATE TABLE IF NOT EXISTS `assessment_types` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`description` varchar(255) CHARACTER SET latin1 NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=7 ;
【问题讨论】:
-
请贴出您的相关表结构代码。
-
具体来说,告诉我们如何在两个表之间进行显式连接。
-
请张贴
create table code的assessments和assessment_types表。 @凯尔 -
我猜
assessment_types.id是 PRIMARY 键。然后试试这个查询UPDATE assessments SET assessments.assessment_type_id = (SELECT assessment_types.id FROM assessment_types WHERE assessment_types.description="Skills Assessment") WHERE assessments.id = 2; -
这成功了!谢谢
标签: php mysql sql join inner-join