【问题标题】:Trying to create an sql subquery试图创建一个 sql 子查询
【发布时间】:2021-06-04 02:17:30
【问题描述】:

我是 mysql 新手,我正在尝试编写一个子查询,在其中我可以找到创建日期最早的玩家及其电话号码。我坚持让子查询工作,因为错误'无效使用组功能'不断显示。我做错了什么?

选择用户名、电话号码 FROM 电话号码 WHERE 用户名 =(选择用户名 从播放器 WHERE MIN(creationDateTime));

【问题讨论】:

    标签: mysql sql subquery


    【解决方案1】:

    如果您想使用子查询,请获取具有最小创建日期的用户。然后使用此用户名获取电话号码。您可以使用以下查询。我假设这将是您提到的只有一个具有最小创建日期的用户。

    SELECT username,  phoneNumber 
    FROM phonenumber 
    where username =
        (
            select username from player 
            where creationDateTime = 
                (
                    SELECT min(creationDateTime) from player
                )
        )
    

    还有比子查询更好的选择。

    【讨论】:

      【解决方案2】:
      SELECT PN.username, PN.phoneNumber, PL.min_creationDateTime FROM phonenumber AS PN
      LEFT JOIN (SELECT username, MIN(creationDateTime) AS min_creationDateTime  FROM player GROUP BY username) AS PL
      ON PN.username = A.username
      

      它应该会给你想要的结果。

      【讨论】:

        【解决方案3】:

        如果你想要一个玩家,我建议order bylimit

        SELECT pn.username, pn.phoneNumber
        FROM phonenumber pn
        WHERE pn.username = (SELECT p.username
                             FROM player p
                             ORDER BY creationDateTime
                             LIMIT 1
                            );
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-03-17
          • 1970-01-01
          • 2021-08-04
          • 1970-01-01
          相关资源
          最近更新 更多