【问题标题】:SQL Query - Having ClauseSQL 查询 - 有子句
【发布时间】:2015-03-19 14:58:54
【问题描述】:

这是我的数据库关系:

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

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

  • showID 是节目的外键

演员(actID、fname、lname)

  • main_cast(showID, actorID, role)
  • showID 是节目的外键
  • actID 是演员的外键

recurring_cast(showID、episodeID、actorID、角色)

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

客户(custID、fname、lname、email、creditcard、membersince、renewaldate、密码、用户名)

cust_queue(custID、showID、datequeued)

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

观看过(custID、showID、episodeID、观看日期) - custID 是客户的外键 - showID 是节目的外键 - (showID, episodeID) 是剧集的外键 - (custID, showID) 是 cust_queue 的外键

所有的“ID”都是主键


我收到了一些问题,但我遇到了问题。 其中之一涉及 HAVING 子句。 查询是:

找出有多少剧集的剧集标题中带有“好”字样?

我假设我必须使用 COUNT 和 HAVING 子句。但我的语法总是关闭。有人帮忙吗?!!我最近的尝试是这样的:

SELECT Shows, COUNT(Episode)
FROM Shows, Episode
WHERE Shows.showid = Episode.showID
GROUP BY Shows
HAVING (Episode.title = 'good');

【问题讨论】:

  • 不需要HAVINGWHERE 子句中使用LIKE

标签: php sql database syntax-error having-clause


【解决方案1】:

您需要使用“LIKE”,然后使用通配符

... WHERE title LIKE '%good%'

每端的 % 将查找包含“好”一词的任何标题。

特别是对于您的查询,如果我正确理解您的数据库示意图,下面的查询应该会找到所有带有“好”一词的剧集

SELECT COUNT(*) FROM Episode WHERE title LIKE '%good%'

【讨论】:

  • SELECT COUNT(Shows) FROM Shows, Episode WHERE Shows.showid = Episode.showID AND Episode.title LIKE {'%good%'};它不工作..
  • 我已经用一个建议更新了我的答案。你为什么使用 { } ?
  • 没关系!我将其更改为:SELECT COUNT(Shows.title) FROM Shows, Episode WHERE Shows.showid = Episode.showID AND Episode.title LIKE '%good%';有效!谢谢
  • 没问题。如果有帮助,您可以将其标记为已回答。
  • 你能帮忙解决这个问题吗?我真的很感激!我班上没有人帮助我度过春假 :( 找到至少一个节目的主要演员和至少一个节目的重复演员。显示演员的名字,姓氏,标题演员在主要演员中的节目,演员在重复演员中的节目的标题,以及演员在每个节目中扮演的角色。我不知道如何处理这个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-03
  • 2016-04-25
  • 1970-01-01
  • 2016-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多