gpt4 book ai didi

SQL 查询以显示高尔夫球手何时未附加到事件/年份

转载 作者:行者123 更新时间:2023-12-04 10:59:50 27 4
gpt4 key购买 nike

我正在完成一项让我难堪好几天的学校作业。任务是使用 View (VAvailableGolfers) 将与从组合框中选择的给定事件/年份无关的高尔夫球手填充到列表框中。以下是表中的数据:

SQL Data

那么,表单上的预期输出将是:

  • 2015 年显示 Goldstein 可用
  • 2016 显示无人可用
  • 2017 年显示 Goldstein 和 Everett 都可用

  • 因此,换句话说,在 TGolferEventYears 中没有高尔夫球手特定年份的记录

    我尝试过左连接、全外连接、存在、不存在、不存在等,但我似乎无法确定 SQL 使其发生。

    这是 VB 表单和支持它的 SQL。我不知道要在 View 中编码什么:

    VB Form

    "SELECT intGolferID, strLastName FROM vAvailableGolfers WHERE intEventYearID = "& cboEvents.SelectedValue.ToString

    这是 View ,我知道它没有给出正确的输出:

    select tg.intGolferID, strLastName, intEventYearID
    from TGolferEventYears TGEY, TGolfers TG
    Where tgey.intGolferID = tg.intGolferID
    and intEventYearID not IN
    (select intEventYearID
    from TEventYears
    where intEventYearID not in
    (select intEventYearID
    from TGolferEventYears))

    感谢任何帮助

    最佳答案

    我通常通过使用 cross join 来解决这类问题。生成所有可能的组合,然后生成 left join/where过滤掉已经存在的:

    select g.intGolferID, g.strLastName, ey.intEventYearID
    from TEventYears ey cross join
    TGolfers g left join
    TGolferEventYears gey
    on gey.intGolferID = g.intGolferID and
    gey.intEventYearID = ey.intEventYearID
    where gey.intGolferID is null;

    关于SQL 查询以显示高尔夫球手何时未附加到事件/年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58888415/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com