我遇到一些无法完成的查询问题,主要问题是我正在加入2个表并添加2个条件:
SQL Table
Products table:
id,name,section
1,Product 1,Computer
2,Product 2,Computer
3,Product 3,Computer
4,Product 4,Computer
Table1:
id,pr_id,value,qty
1,2,1
Table2:
id,pr_id,value,qty
1,1,2,1
1,2,2,2
1,3,2,3
1,3,3,1
1,3,4,1
$itemsIds = array('1', '2', '3');
$value = 2;
$q = $this->db->select('Ai.id as AiId, Ai.pr_id as AiPrId, Ai.value as AiValueId, Ai.qty as AiQty, AiR.id as AiRId, AiR.pr_id as AiRPrId, AiR.value as AiRValueId, AiR.qty as AiRQty, P.name as pName')
->from('products P')
->where_in('P.id', $itemsIds)
->join('table1 Ai', 'P.id=Ai.pr_id', 'left')
->join('table2 AiR', 'P.id=AiR.pr_id', 'left')
->where(array('AiValueId' => $value, 'AiRValueId' => $value))
->group_by('P.id')
->get();
主要问题是,使用此条件我只得到表1值而不是表2值。 我的问题是我怎样才能得到Table1和Table2的条件?
答案 0 :(得分:1)
我认为问题出在你的where子句上。改变这个:
->where(array('AiValueId' => $value, 'AiRValueId' => $value))
到此:
->where('Ai.value', $value)
->or_where('AiR.value',$value)
如果有效,请告诉我。