gpt4 book ai didi

涉及 group by 和 join 的 SQL 查询

转载 作者:行者123 更新时间:2023-12-04 23:05:49 24 4
gpt4 key购买 nike

我在标题部分不能更具体,但我想为我做一些有点复杂的事情。我以为我做到了,但事实证明它有问题。

我有以下三个表:

项目表

  • idProject
  • 标题
  • idOwner

  • 报价表
  • idOffer
  • idProject
  • idAccount

  • 账户表
  • idAccount
  • 用户名

  • 现在在一个查询中,我的目标是列出提供最多报价的所有项目,并且在查询中我还想获得所有者的用户名、报价人的用户名 * 等详细信息。所以我不必再次查询每个项目。

    这是我的错误查询,这是我对 GROUP BY 的第一次实验,我可能不太明白。
    SELECT Project.addDate,Project.idOwner ,Account.Username,Project.idProject,
    Project.Price,COUNT(Project.idProject) as offercount
    FROM Project
    INNER JOIN Offer
    ON Project.idProject= Offer.idProject
    INNER JOIN Account
    ON Account.idAccount = Project.idOwner
    GROUP BY Project.addDate,Project.idOwner,
    Account.Username,Project.idProject,Project.Price
    ORDER BY addDate DESC

    *:我写的时候没想到我只是想提供一些额外的信息,感谢 Hosam Aly,这是毫无意义的。

    最佳答案

    试试这个(针对没有报价的项目进行了修改):

    SELECT
    Project.addDate,
    Project.idOwner,
    Account.Username,
    Project.idProject,
    Project.Price,
    ISNULL(q.offercount, 0) AS offercount
    FROM
    (
    SELECT
    o.idProject,
    COUNT(o.idProject) as offercount
    FROM Offer o
    GROUP BY o.idProject
    ) AS q
    RIGHT JOIN Project ON Project.idProject = q.idProject
    INNER JOIN Account ON Account.idAccount = Project.idOwner
    ORDER BY addDate DESC

    关于涉及 group by 和 join 的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12460225/

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