你是否有人知道一个帮助你构建/操作SQL查询的库,它支持JOIN?
如果你有一些可以返回一个对象的东西,它有一些查询集,并且仍然能够将JOIN应用于它,子查询等,那么它会提供很大的灵活性.
我一直在搜索,并且只找到了SQL Builder,它看起来非常基本,并且不支持连接.这将是一个真正使其有用的主要功能.
也许你可以尝试ORM,比如Propel或Doctrine,它们有一个很好的编程查询语言,它们会返回代表数据库中行的对象数组......
例如,使用Doctrine,您可以执行以下连接:
$q = Doctrine_Query::create(); $q->from('User u') ->leftJoin('u.Group g') ->innerJoin('u.Phonenumber p WITH u.id > 3') ->leftJoin('u.Email e'); $users = $q->execute();
并与Propel:
$c = new Criteria(AuthorPeer::DATABASE_NAME); $c->addJoin(AuthorPeer::ID, BookPeer::AUTHOR_ID, Criteria::INNER_JOIN); $c->addJoin(BookPeer::PUBLISHER_ID, PublisherPeer::ID, Criteria::INNER_JOIN); $c->add(PublisherPeer::NAME, 'Some Name'); $authors = AuthorPeer::doSelect($c);
你可以用两者做更多的事情......