php - MYSQL 查询到 Codeigniter 查询

标签 php mysql codeigniter

当我在 phpMyAdmin 中使用它时,下面的查询工作正常,我只是有点不确定当我拥有 m.id 等时如何在 CI 框架中执行它。

查询:

SELECT DISTINCT m.name, m.id, c.id, c.name
FROM  `default_ps_products` p
INNER JOIN  `default_ps_products_manufacturers` m ON p.manufacturer_id = m.id
INNER JOIN  `default_ps_product_x_cats` x ON p.id = x.product_id
INNER JOIN  `default_ps_products_categories` c ON x.category_id = c.id

最佳答案

方法有很多。

示例1:

$result = $this->db
    ->select('m.name, m.id, c.id, c.name')
    ->distinct()
    ->join('default_ps_products_manufacturers m', 'p.manufacturer_id=m.id')
    ->join('default_ps_product_x_cats x', 'p.id=x.product_id')
    ->join('default_ps_products_categories c', 'x.category_id=c.id')
    ->get('default_ps_products p')
    ->result();

echo $this->db->last_query();

有时事件记录无法生成您想要的查询。所以你可以自己写。

示例2:

$query = "SELECT DISTINCT m.name, m.id, c.id, c.name
           FROM  `default_ps_products` p
           INNER JOIN  `default_ps_products_manufacturers` m ON p.manufacturer_id = m.id
           INNER JOIN  `default_ps_product_x_cats` x ON p.id = x.product_id
           INNER JOIN  `default_ps_products_categories` c ON x.category_id = c.id";

$result = $this->db
    ->query($query)
    ->result();

echo $this->db->last_query();

在第二个示例中,db::query() 可以采用数组作为第二个参数,该参数将用相应的值替换 $query 中的任何问号 (?)。例如,假设您需要向查询添加一些 where 值。

示例3:

$query = "SELECT DISTINCT m.name, m.id, c.id, c.name
          FROM  `default_ps_products` p
          INNER JOIN  `default_ps_products_manufacturers` m ON p.manufacturer_id = m.id
          INNER JOIN  `default_ps_product_x_cats` x ON p.id = x.product_id
          INNER JOIN  `default_ps_products_categories` c ON x.category_id = c.id
          WHERE c.id=?";

$result = $this->db
    ->query($query, array(1))
    ->result();

echo $this->db->last_query();

关于php - MYSQL 查询到 Codeigniter 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15891213/

相关文章:

javascript - 如何在wordpress中为链接使用分层字体?

php - 除以零警告

php - 使用 PHP 存储在 ASTERISK 数据库中的规则的正则表达式

php - Codeigniter:在非对象上调用成员函数 result_array()

php - 如何使用 codeigniter 将值传递给弹出窗口?

php - 从谷歌自然搜索中获取关键词

php - 为什么每个新闻站点只能显示一个标签?

SQL 数据上的 PHP 数学

java - 如何处理忘记密码

javascript - 从可视化中制作静态图像