0

持っている本のテーマを自分のウェブサイトに載せようとしています。ほとんどの本の isbn 番号に複数の主題がリストされていることを除いて、情報を完全に取得する MySqli のクエリがあります。これが私のクエリです:

SELECT b.id,b.title, sss.title as subject 
from books b
LEFT JOIN book_subjects bs on b.id = bs.book
LEFT JOIN sub_subject ss on ss.id = bs.sub_subject
LEFT JOIN sub_sub_subject sss on bs.sub_sub_subject = sss.id
where b.isbn13 = 9780596515898

および結果セット:

489282  JavaScript: The Missing Manual (Missing Manual Series)  Network Programming
489282  JavaScript: The Missing Manual (Missing Manual Series)  Programming Languages
489282  JavaScript: The Missing Manual (Missing Manual Series)  Web Programming / Development

すべての科目 (ネットワーク プログラミング、プログラミング言語など) が 3 つではなく 1 つのフィールドにすべて含まれるようにするにはどうすればよいですか? 私はそれが次のようになりたい:

489282  JavaScript: The Missing Manual (Missing Manual Series) Network Programming, Programming Language, Web Programming/ Developement

結果が生成された後、クエリまたは Php でこれを行うことができます。私は試しました

CONCAT(sss.title) as subject

しかし、それは私のクエリでエラーを投げました。foreach ループが機能するかどうかわからないので、無駄に何時間も費やす前に助けを求めることにしました。

4

1 に答える 1

1

GROUP_CONCAT を試す

SELECT b.id,b.title, GROUP_CONCAT(sss.title) as subject 
from books b
LEFT JOIN book_subjects bs on b.id = bs.book
LEFT JOIN sub_subject ss on ss.id = bs.sub_subject
LEFT JOIN sub_sub_subject sss on bs.sub_sub_subject = sss.id
where b.isbn13 = 9780596515898
于 2013-10-21T14:09:12.953 に答える