Don't know what version of MySQL you are using, but I upgraded to 4.1 so that I could use the GROUP_CONCAT function, which does what you are looking for.

http://dev.mysql.com/doc/mysql/en/GROUP-BY-Functions.html

Otherwise, your front-end will need to do the rolling up of the records.


On Nov 10, 2004, at 1:04 PM, Chris Lott wrote:

Given a database query thats returns results from a linking (or xref)
table which includes repetition because of the joins:

+----+--------------------------+----------+
| id | title                    | subject  |
+----+--------------------------+----------+
|  1 | Collected Poems of Keats | poetry   |
|  2 | Spy High                 | suspense |
|  3 | Sci Fi Spies             | suspense |
|  3 | Sci Fi Spies             | sci-fi   |
+----+--------------------------+----------+

What is the best way to go about displaying this for the user so that
the record looks "complete":

ID: 3
title: Sci Fi Spies
Subjects: suspense, scifi

or something similar? Or is there some better way to query? It's also
a problem in terms of limiting the query because if I limit the query
to 10 records I might be chopping off some subjects for the last book?

The query and tables are simple:

select books.id, books.title, subjects.subject
from books, subjects, books_subjects
where books_subjects.bid = books.id
and books_subjects.sid = subjects.id

BOOKS
1. collected poems of keats
2. spy high
3. sci-fi spies

SUBJECTS:
1. poetry
2. suspense
3. sci-fi
4. horror
5. mystery

BOOKS_SUBJECTS
bid  sid
1    1
2    2
3    2
3    3

c

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


--
Brent Baisley
Systems Architect
Landover Associates, Inc.
Search & Advisory Services for Advanced Technology Environments
p: 212.759.6400/800.759.0577

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to