ON clause with DataObject

From: Date: Thu, 09 Feb 2006 00:14:50 +0000
Subject: ON clause with DataObject
Groups: php.pear.general 
Request: Send a blank email to pear-general+get-22881@lists.php.net to get a copy of this message
Dears, I am using DataObject to join 2 tables; book, book_cat. Using self join with the book_cat table. The problem is in (ON) clause: It shoud be cat.id=subcat.parent_id Instead of cat.id=book_cat.parent_id I don't know why book_cat.parent_id is copied exactly from links.ini without change the table name? The links.ini file contains: -------------------------------------------------------- [book] category = book_cat:id [book_cat] id = book_cat:parent_id -------------------------------------------------------- Code: ------------------------------------------------------- $cat = DB_DataObject::factory('book_cat'); $subcat = DB_DataObject::factory('book_cat'); $book = DB_DataObject::factory('book'); $subcat->joinAdd($cat, 'LEFT', 'cat'); $book->selectAs(); $book->joinAdd($subcat, 'INNER', 'subcat'); $book->selectAs($subcat, 'subcat_%s', 'subcat'); $book->selectAs($cat, 'cat_%s', 'cat'); ------------------------------------------------------- The result query: ------------------------------------------------------- SELECT book.book_id as book_id , book.auther as auther , book.isbn as isbn , book.name as name , book.year as year , book.copy as copy , book.volume as volume , book.category as category , subcat.id as subcat_id , subcat.parent_id as subcat_parent_id , subcat.name as subcat_name , cat.id as cat_id , cat.parent_id as cat_parent_id , cat.name as cat_name FROM book INNER JOIN book_cat AS subcat ON subcat.id=book.category LEFT JOIN book_cat AS cat ON cat.id=book_cat.parent_id ------------------------------------------------------- The on clause should be (ON cat.id = subcat.parent_id) in order to work properly. Thanks BISO

« previous php.pear.general (#22881) next »