【问题标题】:SQL Query - Select QuerySQL 查询 - 选择查询
【发布时间】:2015-03-19 17:23:23
【问题描述】:

这是我的数据库关系:

节目(showID、标题、premiere_year、网络、创作者、类别)

剧集(节目ID、剧集ID、播出日期、标题)

  • showID 是节目的外键

演员(actID,fname,lname)

main_cast(showID, actID, role)

  • showID 是显示的外键 actID 是演员的外键

recurring_cast(showID, episodeID, actID, role)

  • showID 是节目的外键 episodeID 是节目的外键 剧集 actID 是演员的外键

客户(custID, fname, lname, email, creditcard,membersince,renewaldate, password, username)

cust_queue(custID, showID, datequeued)

  • custID 是客户的外键 showID 是节目的外键

观看(custID、showID、episodeID、观看日期)

  • custID 是客户的外键
  • showID 是显示的外键
  • (showID, episodeID) 是剧集的外键
  • (custID, showID) 是 cust_queue 的外键

所有的“ID”都是主键


我收到了一些问题,但对于某些问题,我不知道该怎么做。 如:

查找至少在一个节目的主要演员阵容中以及在至少一个节目的重复演员阵容中的所有演员。显示演员的名字、姓氏、演员在主要演员阵容中的节目名称、演员在重复演员中的节目名称以及演员在每个节目中扮演的角色。

我正在尝试:

{
    SELECT Actor.fname, Actor.lname, Shows.Title
    FROM Actor, Shows, Main_Cast, Recurring_Cast
    WHERE Actor.actID = Main_Cast.actID AND Actor.actID = Recurring_Cast.actID;
}

但我认为这是不对的。有什么想法吗??

【问题讨论】:

  • 您使用的是哪个 DBMS?后格雷斯?甲骨文?
  • cPanel 不是 DBMS。这似乎是一个 SQL 客户端工具。你连接到哪个数据库引擎
  • 我真的不知道,但我正在对一个名为 phpMyAdmin 的东西执行所有查询

标签: mysql sql database syntax-error


【解决方案1】:

尝试以下方法:

SELECT Actor.fname, Actor.lname, Shows.Title
FROM Actor, Shows  AS sh
WHERE Actor.actID 
IN 
      (SELECT actID FROM Main_Cast
      WHERE sh.showID==Main_Cast.showID)
UNION
      (SELECT actID FROM Recurring_Cast
      WHERE sh.showID==Recurring_Cast.showID)

这将向您显示同一节目的主要演员和反复出现的演员。您可以对其稍作修改以获得您想要的内容。

【讨论】:

  • MySQL 说:文档 #1054 - 'where 子句'中的未知列 'Shows.showid'
  • 对不起,我的错。我已经编辑了我的答案。 (好久不见,sql!:D)希望这次能成功。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-28
  • 2019-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多