我有两张桌子:
╔══════════════╦═════════════╗
║ 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
然而,这显然会为每个作者产生一行——这不是我想要的。相反,我正在尝试实现这个数据结构:
[字符串标题,字符串[]作者(数组)]
是否可以在一个查询中执行此操作?最好不要将作者列“合并”成一个字符串。类似于列本身的内部数组。