锂离子连接

时间:2012-08-29 15:02:17

标签: sql lithium

我是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();

1 个答案:

答案 0 :(得分:1)

有一个很棒的教程(使用博客作为示例)here解释了在Lithium中使用关系,关系使用关系数据和JOINS更简单。

您还可以check out官方文档以及此答案:How do I perform joins with lithium models?

在您的模型上设置了关系后,您可以像以下一样执行JOINS

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

锂中有几种不同类型的关系,大致与JOINS的不同类型相关......

  • hasOne :当前对象链接到另一种类型的单个对象
  • hasMany :当前对象链接到许多其他类型的对象
  • belongsTo :当前对象拥有并标记为与之相关 另一个对象