【问题标题】:Querying 2 Tables In SQL在 SQL 中查询 2 个表
【发布时间】:2015-12-09 15:05:44
【问题描述】:

我正在尝试查询这条语句:

 Drinkers who frequent all bars

现在我有一个名为 bar 的表,其中有一列包含每个 bar 的名称。

我还有一张名为“常客”的表格,上面写着饮酒者的姓名以及他们常去的酒吧。

通过一个查询,我能够使用计数运算符从柱状表中找到不同柱的数量:

SELECT COUNT(DISTINCT name) AS num_bars 
FROM bars;

答案是 18。

通过单独的查询,我可以检查常客表,查看以下总共 18 个酒吧的常客:

SELECT drinker
FROM frequents
GROUP BY drinker
HAVING COUNT(drinker) = 18;

首先,我不确定如何将这两个查询合并为一个(连接过程让我有些困惑)。其次,我不确定我的逻辑是否完全合理。如果饮酒者经常光顾的酒吧不在酒吧表中(这在我的数据集中没有发生)怎么办?那么我的两个查询系统就会失败。

【问题讨论】:

  • 这是您系列问题中的第四个类似问题。你至少应该付出一些努力。

标签: mysql sql querying


【解决方案1】:

您不需要join(尽管您可以使用一个)。只需在having 子句中使用子查询:

SELECT drinker
FROM frequents
GROUP BY drinker
HAVING COUNT(drinker) = (SELECT COUNT(DISTINCT name) FROM bars);

【讨论】:

    猜你喜欢
    • 2013-09-27
    • 1970-01-01
    • 2017-01-03
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多