MySQL 选择帮助;子查询?

标签 mysql sql

我有两个表可供查询。在一张表中,有一些字段表示照片上的球员是否死亡/活着、是否在名人堂等。我刚刚添加的字段称为“new_flag”。这表示该照片是否是我的库存中的新照片

如果没有 GROUP BY,结果将如下所示(请注意,有些玩家拥有多个产品/照片)

name            firstname  lastname     hall_of_fame  deceased  new_flag
----            ---------  --------     ------------  --------  --------
EARL AVERILL SR EARL       AVERILL SR   Y             Y         Y
BILL TERRY      BILL       TERRY        Y             Y         N
BILL TERRY      BILL       TERRY        Y             Y         Y
BILL TERRY      BILL       TERRY        Y             Y         N
BOBBY DOERR     BOBBY      DOERR        Y             N         N
BOBBY DOERR     BOBBY      DOERR        Y             N         N

使用 GROUP BY 时,我的查询如下所示,但它并不总能找到新标志,因为每个玩家可能有多个记录。

SELECT    CONCAT(a.firstname,' ',a.lastname) AS name,
          a.firstname,
          a.lastname,
          b.hall_of_fame,
          b.deceased,
          b.new_flag
 FROM     vm_product_name AS a,
          vm_product_new_attribute AS b  
 WHERE    b.hall_of_fame ='Y'
   AND    a.product_id = b.product_id
 GROUP BY CONCAT(a.firstname,' ',a.lastname)
 ORDER BY a.lastname,
          a.firstname;

问题是我只希望每个玩家在我的网页上出现一次,但是......如果他们至少有一张新照片,我还想在玩家姓名旁边添加一个"new"图标。我有什么想法可以做到这一点吗?

我知道这不是最佳方法,但它是作为 Joomla/Virtumart 扩展构建的,目前我无法更改数据库结构。

最佳答案

SELECT CONCAT(a.firstname, ' ', a.lastname) AS name, a.firstname, a.lastname,
    b.hall_of_fame, b.deceased, MAX(b.new_flag) AS new_flag
FROM vm_product_name AS a
    INNER JOIN vm_product_new_attribute AS b
        ON a.product_id = b.product_id
WHERE b.hall_of_fame = 'Y'
GROUP BY a.lastname, a.firstname
ORDER BY a.lastname, a.firstname

关于MySQL 选择帮助;子查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4589950/

相关文章:

java - ClassCastException : java. util.Date 无法转换为 java.sql.Date

Java + MySQL : Do i have a good way to encrypt a password?

sql - 在PLSQL中将数字转换为varchar2,在PLSQL中没有千位分隔符

java - Android 应用程序 - 连接到 Google Cloud SQL

mysql - "Using index",复合索引 : A=, B=, C<=

mysql - mysql中逐行统计列中的单词数

php - mysql select查询无法无限制地执行

mysql - 获取我评论过的帖子以及新评论吗?

php - 使用 TCPDF 的空白 pdf 文件

sql - BC 日期在 postgreSQL 中是什么意思?