【问题标题】:Joining 3 tables SQL连接 3 个表 SQL
【发布时间】:2012-02-22 00:42:16
【问题描述】:

我试图解决这个问题很长一段时间,但输出是错误的。谁能帮我这个?我正在使用mysql,所以完全加入不起作用。谢谢你

3 个表:

Frequents (attributes: drinker, bar, times_a_week),
Likes (attributes: drinker, beer),
Serves (attributes: bar, beer, price),

这个问题是针对所有经常光顾“每个”酒吧的饮酒者,这些酒吧供应他们喜欢的一些啤酒

我的答案是这样的:

SELECT drinker 
FROM frequents 
WHERE drinker NOT IN (SELECT f.drinker FROM frequents f 
                  JOIN likes l ON f.drinker=l.drinker
                  LEFT JOIN serves s ON l.beer=s.beer
                  AND s.bar=f.bar
                  WHERE s.bar IS NULL)

【问题讨论】:

  • 您能提供示例输入和预期输出吗?
  • @ypercube:很好的编辑。我不确定我是否知道relational-division 标签!
  • @onedaywhen:我已投票支持要合并的 2 个标签(sql-match-all 和 relational-division)

标签: mysql sql sql-match-all relational-division


【解决方案1】:

这个怎么样:

select * 
from Frequents
where bar in (select bar from Serves  S join Likes  L on S.beer=l.beer)

如果它不起作用,您可以发布一些数据示例吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 2022-07-22
    • 2017-09-18
    相关资源
    最近更新 更多