基于SQL中不同表的外键条件更新表

时间:2018-01-29 16:19:59

标签: sql oracle-sqldeveloper

我正在使用Oracle SQL Developer。我想在一个表中更新一组行,这是基于剧院中有超过2个电影放映的条件。我试图使用典型的

UPDATE table SET changedData WHERE condition

实施例: 表1-剧院:剧院ID - 主键,剧院名称,城市,容量

表2-电影:actorID - 外键,theaterID-外键,ConcertDate-主键

如果' TheaterID'在电影'表格不止一次出现,然后改变容量'在剧院'表到40000。

我的尝试:

UPDATE Theater set capacity = 40000 WHERE SELECT COUNT(theaterid)=2 FROM 
movies;

但我一直在犯错误

Error report:
SQL Error: ORA-00936: missing expression
00936. 00000 -  "missing expression"

2 个答案:

答案 0 :(得分:0)

试试这个

  UPDATE  Theater 
  set capacity = 40000 
  WHERE theaterID  IN (select theaterID 
               FROM movies GROUP BY theaterID 
               HAVING COUNT(theaterID )>2)

答案 1 :(得分:0)

更新剧院 设置容量= 40000 在哪里剧院ID IN (选择剧院ID  来自电影  GROUP BY theaterID  有COUNT(*)= 2)