select over multiple tables
codemasher opened this issue · comments
smiley commented
$this->db->select
->cols(['skilldata.id'])
->from([
'skilldata' => TABLE_SKILLDATA,
'skilldesc' => TABLE_SKILLDESC_EN,
])
->where('skilldata.id', $skill_id)
->where('skilldesc.id', 'skilldata.id', false)
->sql();
the expected AND skilldata.id = skilldesc.id
doesn't show up
SELECT `skilldata`.`id`
FROM `gw1_skilldata` AS `skilldata`, `gw1_skilldesc_en` AS `skilldesc`
WHERE `skilldata`.`id` = ?
$this->db->select
->cols(['skilldata.id'])
->from([
'skilldata' => TABLE_SKILLDATA,
'skilldesc' => TABLE_SKILLDESC_EN,
])
->where('skilldata.id', $skill_id)
->where('skilldesc.id', 'skilldata.id') // omitted "false"
->sql();
as expected
SELECT `skilldata`.`id`
FROM `gw1_skilldata` AS `skilldata`, `gw1_skilldesc_en` AS `skilldesc`
WHERE `skilldata`.`id` = ? AND `skilldesc`.`id` = ?
$this->db->select
->cols(['skilldata.id'])
->from([
'skilldata' => TABLE_SKILLDATA,
'skilldesc' => TABLE_SKILLDESC_EN,
])
->where('skilldesc.id', 'skilldata.id', false)
->sql();
what
SELECT `skilldata`.`id` FROM `gw1_skilldata` AS `skilldata`, `gw1_skilldesc_en` AS `skilldesc`
smiley commented
ok, i think i need to make the 3rd accept bool|string
, so that i don't run into this one AGAIN.
smiley commented
note to future me: this is how it works
$this->db->select
->from([
'skilldata' => TABLE_SKILLDATA,
'skilldesc' => TABLE_SKILLDESC_EN,
])
->where('skilldata.id', 'skilldesc.id', '=', false)
->where('skilldata.id', $skill_id)
->query();