这是上一个问题的修订版。由于范围已更改,我决定提出一个新问题。
这就是我想要实现的。
在“作者”栏中列出该书作者的姓氏,首先列出作者的姓氏,然后(逗号后)是第二位作者的姓氏,如果任何;如果有第三作者,则放在第二作者姓名之后。一本书的作者顺序列在 au_ord 列中(1=第一作者,2=第二作者,3=第三作者)。
知道如何在 MYSQL 输出中实现这一点吗?
那些是源表。所需的输出是这样的:
最佳答案
这应该给出您的第一个示例输出:
SELECT title_id, au_ord, au_lname
FROM title_authors
LEFT JOIN authors
ON authors.au_id = title_authors.au_id
WHERE title_id = 'TC7777'
ORDER BY au_ord;
这应该给出第二个:
SELECT title_id, GROUP_CONCAT(au_lname ORDER BY au_ord SEPARATOR ', ')
FROM title_authors
LEFT JOIN authors
ON authors.au_id = title_authors.au_id
GROUP BY title_id
HAVING title_id = 'TC7777';
关于mysql - 一行内匹配不同值 II,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13132543/