2013-10-21 72 views
0

我试图把我在我的网站上的书的主题。我在MySqli中有一个查询,它能够完美地为我提供信息,除了大多数书籍的isbn编号都列出了多个主题。这里是我的查询:MySqli查询中的一个项目的多个字段需要使用php进入一个文本框中

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 

我如何得到它,所有的受试者(网络编程,编程语言等)都在一个领域而不是三个?我想它看起来像︰

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

我可以尝试在查询中执行此操作或在生成结果后使用Php。我尝试过

CONCAT(sss.title) as subject 

但是在我的查询中抛出了一个错误。我不确定一个foreach循环是否会起作用,所以我想我会在花费数小时徒劳之前寻求帮助。

+0

什么是您预期的输出? CONCAT应该至少采用多重参数来连接我想的。 http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat – user2720864

回答

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 
+0

这工作完美!谢谢 – Jim

相关问题