Mysql SQL更新where in JOIN子句

Mysql SQL更新where in JOIN子句,mysql,join,Mysql,Join,我有两张桌子:电视新闻和电视新闻猫。 tt_news具有列tx_newscaller\u calendardate和一个名为category 表tt_news_cat有一个uid。该关系是m:m关系。m:m写在tt_news_cat_mm表中,包含以下字段uid_local(新闻uid)和uid_foreign(类别uid) 我想更新tt_新闻中的一个字段,其中对应的类别uid为12。phpmyadmin中的My Update子句如下所示: UPDATE b SET `tx_newscalend

我有两张桌子:电视新闻和电视新闻猫。 tt_news具有列
tx_newscaller\u calendardate
和一个名为
category
表tt_news_cat有一个
uid
。该关系是m:m关系。m:m写在tt_news_cat_mm表中,包含以下字段
uid_local
(新闻uid)和uid_foreign(类别uid)

我想更新tt_新闻中的一个字段,其中对应的类别uid为12。phpmyadmin中的My Update子句如下所示:

UPDATE b
SET `tx_newscalendar_calendardate` = `datetime`
FROM `tt_news` AS b
INNER JOIN `tt_news_cat` AS i
WHERE `i.category` = 12
我做错了什么? 谢谢

附注:表格定义:

#
# 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)
  );

正如@jens在他们的回答中指出的,您将子句按错误的顺序排列,这就是MySQL抱怨语法错误的原因(在“FROM
tt_news
..”附近)。但是,由于您没有一个
JOIN
条件,查询将修改表
tt\u news
的所有行。如果你想要一个有用的答案,那么把两个表格的结构放在问题中。