Re: MySQL/PHP Left Join Question
| From: | Brad Bonkoski | Date: | Thu, 25 May 2006 16:09:32 +0000 |
| Subject: | Re: MySQL/PHP Left Join Question | ||
| References: | 1 | Groups: | php.db |
| Request: | Send a blank email to php-db+get-41943@lists.php.net to get a copy of this message | ||
Some good examples of how to deal with this in PHP have already been given, especially the associative array solution.
The question I have is with something like this, how do you weight out the pros/cons of code development versus speed?
i.e. for code development breaking the logic up into 2 queries would yield a much more readable result, but speed wise what is better multiple queries with smaller more precise record sets, or having PHP parse through the result set to properly weed out duplicate titles based on the outer join applied?
This is assuming that there is no SQL construct to solve this problem, which personally I know of none.
-Brad
Andrew Darby wrote:
Hello, all. I don't know if this is a php-mysql question or just a mysql, but here goes: I have a list of DVDs that my library loans out, and I'd like to allow people to add comments to each item. Since this list gets regenerated periodically (it's extracted from another system, the library catalog), there isn't a consistent ID in the dvd tables, so I'm using the call number (which will look like DVD 2324) as the key. Anyhow, I join the tables like this to get all the DVDs and all the comments associated with the DVDs: SELECT distinct dvds.title, dvds.publisher, dvds.publication_date, dvds.call_number, comment.id, comment.parent_id, comment.comment, comment.name FROM dvds LEFT JOIN comment ON dvds.call_number=comment.parent_id WHERE dvds.title LIKE 'A%' ORDER BY dvds.title With this, I'll get results likeDVD 101 A.I. This movie rocked DVD 101 A.I. This Movie stunk DVD 102 Adaptation . . . DVD 103 After Hours . . .When I loop in PHP through the records, of course, I want just the one DVD with however many comments associated with it. Is it possible to do this (i.e., screen out DVD dupes) in MySQL, or do I have to do it in PHP? If this is a dumb question, my humblest apologies, and I'd be interested if there was a better way to handle this . . . . Andrew