codeigniter 将表A两列与表B的一列连接

doinxwow  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(119)

我有两张table

表格A

| 识别码|起始日期|结束日期|标价|
| - -|- -|- -|- -|
| 一个|十一|十二|200元/-|
| 2个|十二|十三|200元/-|
| 三个|十三|十一|200元/-|

表格B

| 识别码|数据名|
| - -|- -|
| 十一|帕尼帕特|
| 十二|卡纳尔|
| 十三|索内帕特|
我想在Codeigniter中联接表A和表B

$this->db->select('Table A.*,Table B.*');
$this->db->where('Table A.id',1);
$this->db->from('Table A');
$this->db->join('Table B','Table A.from=Table B.id');
$this->db->join('Table B as t1','Table A.to=Table B.id');
$orders=$this->db->get()->row();
echo $orders->dname.' - '. $orders->dname;

在运行上述代码时,它显示Panipat - Panipat,而它应该显示为Panipat - Karnal

mrphzbgm

mrphzbgm1#

您没有以正确的方式添加查询的第三个联接,也没有将您感兴趣的列包括到select子句中。
由于您的代码没有使用一致的别名,因此混淆了约定,您可以将示例简化为:

SELECT A.*, B.dname as fromName, C.dname as toName
FROM `table_A` as A
join `table_B` as B on A.from=B.id
join `table_B` as C on A.to=C.id
where A.id=1

这是与完整示例对应的sqlfiddle
这将是您编写查询的Codeigniter方式,同时考虑使用别名fromNametoName的正确输出

$this->db->select('A.*, B.dname as fromName, C.dname as toName');
$this->db->where('A.id',1);
$this->db->from('Table A as A');
$this->db->join('Table B as B','A.from=B.id');
$this->db->join('Table B as C','A.to=C.id');
$orders=$this->db->get()->row();
echo $orders->fromName.' - '. $orders->toName;

相关问题