我有两个表:
╔══════════════╦═════════════╗
║ Table: book ║ Column info ║
╠══════════════╬═════════════╣
║ - id ║ int, pk ║
║ - title (128)║ varchar ║
╚══════════════╩═════════════╝
╔══════════════╦═════════════╗
║Table: author ║ Column info ║
╠══════════════╬═════════════╣
║ - id ║ int, pk ║
║ - name (128) ║ varchar ║
║ - bookId ║ int, fk ║
╚══════════════╩═════════════╝
(我知道这不是一个完全规范化的例子,但为了简单起见,我尽力了。)
从它们那里收集数据非常简单:
SELECT b.title, a.name FROM book b
INNER JOIN author a ON a.bookId = b.id
WHERE b.id = x
然而,这显然会得到每个作者一行的结果 - 这不是我想要的。 相反,我正在尝试实现这种数据结构:[String title, String[] authors(数组)]。 有没有可能在一个查询中实现这一点?最好不要将作者列合并为一个字符串。类似于列本身的内部数组。
GROUP_CONCAT
。 - Kermitbook = getBookData(id); book[authors] = getBookAuthors(id);
(仅为示例)。 - Zar