1

我是新来的Lithium。我需要做一个左连接。这就是query我需要的。

SELECT `title`,`body`,`user_id`,`users`.`username`,`users`.`id` 
FROM `posts` LEFT JOIN `users` 
        ON `user_id` = `users`.`id`

我尝试做这样的事情。

  $conditions['user_id'] = $this->data['user_id'];
                $posts = Post::all(array(
                  'conditions' => $conditions,
                  'fields' => array('title','body','username'),
                  'join' => array('source' => 'posts', 
                  'type' => 'LEFT',
                  'constraint' => array('post.user_id' => 'Users.id')), 
                     ))->data();
4

1 回答 1

1

这里有一个很棒的教程(以博客为例)它解释了在锂中使用关系JOINS,关系使使用关系数据变得更简单。

您还可以查看官方文档以及此答案:如何使用锂模型执行连接?

一旦你在你的模型上设置了你的关系,你可以简单地做你的:JOINS

$posts = Posts::find('all', array(
    'with' => 'Users'
));

锂中有几种不同类型的关系,它们大致对应于不同类型的JOINS...

  • hasOne:当前对象链接到另一种类型的单个对象
  • hasMany:当前对象链接到许多其他类型的对象
  • belongsTo:当前对象被拥有并标记为与另一个对象相关
于 2012-08-29T20:56:59.737 回答