0

我有这个跟踪系统,可以让你跟踪某些类型的状态。当您关注某人时,它会将您的用户 ID 与朋友的 ID 一起放入好友表中。最后,它添加了您想要遵循的状态类型。因此,假设用户只想关注我的状态而不是照片,那么状态的类型将 = 1。statuses 表中也有类型,所以这个查询可以正常工作,但是如果类型等于零,我希望它选择所有状态类型,那么我该怎么做呢?

$this->db->select('statuses.type,statuses.text,statuses.media_url,statuses.user_id,statuses.id,users.name,users.username,users.avatar');
$this->db->from('statuses');
$this->db->join('friends', 'friends.type = statuses.type AND friends.friend_id = statuses.user_id OR friends.user_id = statuses.user_id');
$this->db->join('users', 'users.id = statuses.user_id');
$this->db->where('friends.user_id', $user_id);
$this->db->where('friends.confirmed', 1);

Friends.type 等于 1 时,会在状态表中选择 statuses types = to 1。如果 type = 2 或 3 对于其他类型的状态(例如照片或视频),这将起作用。就像我说的,如果friends.type = 0,我只需要一种选择所有状态类型的方法。

4

1 回答 1

0

也许这个?:

$this->db->join('friends', '(friends.type = 0 OR friends.type = statuses.type) AND (friends.friend_id = statuses.user_id OR friends.user_id = statuses.user_id)');
于 2012-07-02T21:15:52.920 回答