php - 使用左连接和内连接的 CodeIgniter 数据库查询

标签 php mysql codeigniter

我在翻译此数据库查询时遇到问题

 SELECT 'conversations','conversation_id',
'conversations','conversation_subject',
MAX('conversations_messages','message_date') AS 'conversation_last_reply'
FROM 'conversations'
LEFT JOIN 'conversations_messages' ON 'conversations'.'conversation_id' = 'conversations_messages'.'conversation_id'
INNER JOIN 'conversations_members' ON 'conversations'.'conversation_id' = 'conversations_members'.'conversation_id'
WHERE 'conversations_members', 'user_id' = $sender_id
AND 'conversations_members','conversation_deleted' = 0
GROUP BY 'conversations'.'conversation_id'
ORDER BY 'conversation_last_reply'  DESC";

到 codeignitor 的事件记录。

我已经尝试过这个方法了

$this->db->select('conversation_id, conversation_subject');

    $this->db->get('conversations');

     $this->db->select_max('message_date', 'conversation_last_reply');

    $this->db->get('conversations_messsages');
   $this->db->from('conversations');
   ........

但是我得到了左侧的堆栈和内部连接。所以我尝试了这种方式

 $query = $this->db->query(
    SELECT 
          'conversations','conversation_id',
         'conversations','conversation_subject',
    MAX('conversations_messages','message_date') AS 'conversation_last_reply'
    FROM 'conversations'
    LEFT JOIN 'conversations_messages' ON 'conversations'.'conversation_id' = 'conversations_messages'.'conversation_id'
    INNER JOIN 'conversations_members' ON 'conversations'.'conversation_id' = 'conversations_members'.'conversation_id'
    WHERE 'conversations_members', 'user_id' = $sender_id
    AND 'conversations_members','conversation_deleted' = 0
    GROUP BY 'conversations'.'conversation_id'
    ORDER BY 'conversation_last_reply'  DESC"
        );
   return $query->result();

但到处都是错误。

最佳答案

你引用错了

$query = $this->db->query("SELECT 'conversations','conversation_id',
         'conversations','conversation_subject',
    MAX('conversations_messages','message_date') AS 'conversation_last_reply'
    FROM 'conversations'
    LEFT JOIN 'conversations_messages' ON 'conversations'.'conversation_id' = 'conversations_messages'.'conversation_id'
    INNER JOIN 'conversations_members' ON 'conversations'.'conversation_id' = 'conversations_members'.'conversation_id'
    WHERE 'conversations_members', 'user_id' = $sender_id
    AND 'conversations_members','conversation_deleted' = 0
    GROUP BY 'conversations'.'conversation_id'
    ORDER BY 'conversation_last_reply' DESC"
        );
   return $query->result();

关于php - 使用左连接和内连接的 CodeIgniter 数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34563181/

相关文章:

php - “安全”助手在 CodeIgniter 中不起作用

php - 使用 php 和 mysql 自定义自动递增 "id"

php - Slim 3 将特定的正则表达式配置到路由中

php - 如何在运行时生成或修改 PHP 类?

java - 使用hibernate更新mysql中的DateTime类型

php - 无法使用 codeigniter 从数据库中检索数据

php - __construct 和与类同名的函数有什么区别?

php - 仅通过 curl 在 php 中检索 header

mysql - 在 AWS RDS MySQL 数据库之间传输数据

mysql - 当时间戳比当前时间早 X 分钟时删除 Codeigniter DB