SQL UPDATE在JOIN子句中的位置

时间:2015-02-09 12:21:47

标签: mysql join

我有两个表:tt_news和tt_news_cat。 tt_news有tx_newscalendar_calendardate列和名为category的类别的关系字段 表tt_news_cat有一个uid。该关系是m:m关系。 m:m写在表tt_news_cat_mm中,包含thre字段uid_local(新闻uid)和uid_foreign(类别uid)。

我想更新tt_news中相应类别uid为12的字段。我在phpmyadmin中的更新条款如下所示:

UPDATE b
SET `tx_newscalendar_calendardate` = `datetime`
FROM `tt_news` AS b
INNER JOIN `tt_news_cat` AS i
WHERE `i.category` = 12

我在这里做错了什么? 感谢。

PS:表格定义:

#
# Table structure for table 'tt_news'
#
CREATE TABLE tt_news (
  uid int(11) NOT NULL auto_increment,
  pid int(11) DEFAULT '0' NOT NULL,
  tstamp int(11) unsigned DEFAULT '0' NOT NULL,
  crdate int(11) unsigned DEFAULT '0' NOT NULL,
  cruser_id int(11) unsigned DEFAULT '0' NOT NULL,
  editlock tinyint(4) unsigned DEFAULT '0' NOT NULL,
  deleted tinyint(3) unsigned DEFAULT '0' NOT NULL,
  hidden tinyint(4) unsigned DEFAULT '0' NOT NULL,
  starttime int(11) unsigned DEFAULT '0' NOT NULL,
  endtime int(11) unsigned DEFAULT '0' NOT NULL,
  fe_group varchar(100) DEFAULT '0' NOT NULL,
  title text,
  datetime int(11) unsigned DEFAULT '0' NOT NULL,
  image text,
  imagecaption text,
  imagealttext text,
  imagetitletext text,
  related int(11) DEFAULT '0' NOT NULL,
  short text,
  bodytext mediumtext,
  author varchar(255) DEFAULT '' NOT NULL,
  author_email varchar(255) DEFAULT '' NOT NULL,
  category int(11) DEFAULT '0' NOT NULL,

  news_files text,
  links text,
  type tinyint(4) DEFAULT '0' NOT NULL,
  page int(11) DEFAULT '0' NOT NULL,
  keywords text,
  archivedate int(11) DEFAULT '0' NOT NULL,
  ext_url varchar(255) DEFAULT '' NOT NULL,

  sys_language_uid int(11) DEFAULT '0' NOT NULL,
  l18n_parent int(11) DEFAULT '0' NOT NULL,
  l18n_diffsource mediumblob NOT NULL,
  no_auto_pb tinyint(4) unsigned DEFAULT '0' NOT NULL,

  t3ver_oid int(11) DEFAULT '0' NOT NULL,
  t3ver_id int(11) DEFAULT '0' NOT NULL,
  t3ver_wsid int(11) DEFAULT '0' NOT NULL,
  t3ver_label varchar(30) DEFAULT '' NOT NULL,
  t3ver_state tinyint(4) DEFAULT '0' NOT NULL,
  t3ver_stage tinyint(4) DEFAULT '0' NOT NULL,
  t3ver_count int(11) DEFAULT '0' NOT NULL,
  t3ver_tstamp int(11) DEFAULT '0' NOT NULL,
  t3_origuid int(11) DEFAULT '0' NOT NULL,


  PRIMARY KEY (uid),
  KEY parent (pid),
  KEY t3ver_oid (t3ver_oid,t3ver_wsid),
  KEY datetime (datetime)

);

#
# Table structure for table 'tt_news_cat'
#
CREATE TABLE tt_news_cat (
  uid int(11) NOT NULL auto_increment,
  pid int(11) DEFAULT '0' NOT NULL,
  tstamp int(11) unsigned DEFAULT '0' NOT NULL,
  crdate int(11) unsigned DEFAULT '0' NOT NULL,
  hidden tinyint(4) unsigned DEFAULT '0' NOT NULL,
  starttime int(11) unsigned DEFAULT '0' NOT NULL,
  endtime int(11) unsigned DEFAULT '0' NOT NULL,
  sorting int(11) unsigned DEFAULT '0' NOT NULL,
  fe_group varchar(100) DEFAULT '0' NOT NULL,
  title varchar(255) DEFAULT '' NOT NULL,
  title_lang_ol varchar(255) DEFAULT '' NOT NULL,
  image varchar(255) DEFAULT '' NOT NULL,
  shortcut int(11) unsigned DEFAULT '0' NOT NULL,
  shortcut_target varchar(255) DEFAULT '' NOT NULL,
  deleted tinyint(3) unsigned DEFAULT '0' NOT NULL,
  single_pid int(11) unsigned DEFAULT '0' NOT NULL,
  parent_category int(11) unsigned DEFAULT '0' NOT NULL,
  description text,

  PRIMARY KEY (uid),
  KEY parent (pid),
  KEY parent_category (parent_category)

);

#
# Table structure for table 'tt_news_related_mm'
#
CREATE TABLE tt_news_related_mm (
   uid_local int(11) DEFAULT '0' NOT NULL,
   uid_foreign int(11) DEFAULT '0' NOT NULL,
   sorting int(11) DEFAULT '0' NOT NULL,
   tablenames varchar(255) DEFAULT '' NOT NULL,

   KEY uid_local (uid_local),
   KEY uid_foreign (uid_foreign)
 );

 #
 # Table structure for table 'tt_news_cat_mm'
 #
CREATE TABLE tt_news_cat_mm (
   uid_local int(11) DEFAULT '0' NOT NULL,
   uid_foreign int(11) DEFAULT '0' NOT NULL,
   tablenames varchar(30) DEFAULT '' NOT NULL,
   sorting int(11) DEFAULT '0' NOT NULL,

   KEY uid_local (uid_local),
   KEY uid_foreign (uid_foreign)
  );

0 个答案:

没有答案