Propel ORM - Joining unrelated tables
You could also use "addJoin" like this:
TableAQuery::create()->addJoin(TableAPeer::ThisCOLUMN, TableBPeer::ThatCOLUMN, Criteria::INNER_JOIN); //Can also be left/right
The third argument also takes left and right join.
And, instead of the usual "filterByXXX()"
->filterByOtherColumn(value)
you'd use "add()", like this:
->add(TableAPeer::OtherCOLUMN, value)
You can work around this limitation by using raw SQL syntax. For instance:
$con = Propel::getConnection(SomePeer::DATABASE_NAME);$query = 'SELECT * FROM `table_a` JOIN `table_b` LIMIT 10';$stmt = $con->prepare($query);if($stmt->execute()) { $res = $stmt->fetchAll(); var_dump($res);}
Note #1: These kind of joins can become very big and quickly exhaust the allowed memory size. That's why I've added a LIMIT
.
Note #2: The output isn't very clean, arrays of both numeric and associative keys. Maybe there are ways to improve this.