私は2つのテーブルを持っています:
╔══════════════╦═════════════╗
║ 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
ただし、これにより、作成者ごとに1行が生成されることは明らかです。これは、私が望んでいることではありません。代わりに、私はこのデータ構造を実現しようとしています。
[文字列タイトル、文字列[]作成者(配列)]
1つのクエリでこれを行うことは可能ですか?できれば、作成者の列を1つの文字列に「マージ」しないでください。列自体の内部配列のようなもの。