douyanqu9722 2014-04-24 15:00
浏览 74
已采纳

多个表上的Codeigniter / PHP外连接语法

I am trying to perform an outer JOIN 3 tables based on the "site_id" column in each table. I'm using Codeigniter/Active Record.

The user enters a site number via a form and once the number is submitted it should call the model that executes something like this:

$site_id = $this->input->post('site_id');

$this
->db
->select('*')
->where('site_id', $site_id)
->from('sites')
->join('leader', 'sites.site_id = leader.site_id', 'outer')
->join('state', 'sites.site_id = state.site_id', 'outer');

$q = $this->db->get();

However I get the following error message:

"Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OUTER JOIN leader ON sites.site_id = leader.site_id OUTE' at line 3

SELECT * FROM (sites) OUTER JOIN leader ON sites.site_id = leader.site_id OUTER JOIN state ON sites.site_id = state.site_id WHERE site_id = '63'

Filename: /home2/cdowney/public_html/mclinbase.com/models/viewsite_model.php

Line Number: 33"

I believe(hope) this is just a small syntax error that I'm missing or a misuse of the outer join but I have not been able to figure it out.

Any guidance?

  • 写回答

2条回答 默认 最新

  • doubu1950 2014-04-24 15:24
    关注

    Try this -

    $this->db->select('*');
    $this->db->where('sites.site_id', $site_id);
    $this->db->from('sites');
    $this->db->join('leader', 'sites.site_id = leader.site_id', 'outer');
    $this->db->join('state', 'sites.site_id = state.site_id', 'outer')
    
    $q = $this->db->get();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法