1

我想执行一个查询,我想检查列 A 上是否具有某些值。A 可以只有 X 、 X 和 Y 或 XY 和 Z 的组合。

为了更好的理解。我正在表格本身中检查一本书的作者。该表具有 BOOK_ID、BOOK_TITLE、AUTHOR_NAME、AUTHOR_ORDER。

因此,一本书可能有 1,2 或 3 个作者,按 AUTHOR_ORDER 行中的顺序列出。我正在努力达到一个输出,如果一本书有 3 个作者,它将相应地显示从第一作者到第三作者。我现在陷入了需要比较值并将其呈现在输出中的部分。

知道如何在 MYSQL 输出中实现这一点吗?

样本 :

在此处输入图像描述

输出结果或多或少是这样的:

如果标题的 au_ord 为 1,2 和 3,则应有一个新列,所有作者姓名按升序排列。

例如,对于标题 BU1032,作者行将是 Bennet, Green

4

1 回答 1

2

我认为GROUP_CONCAT这就是你所追求的:

SELECT  Title_ID, 
        Title,
        GROUP_CONCAT(au_LName ORDER BY au_Ord) AS Authors
FROM    Books
GROUP BY Title_ID, Title;

SQL 小提琴

于 2012-10-29T17:11:07.223 回答