chillerlan / php-database

A PHP7.4+ SQL client and querybuilder

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

select over multiple tables

codemasher opened this issue · comments

$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`

ok, i think i need to make the 3rd accept bool|string, so that i don't run into this one AGAIN.

https://twitter.com/codemasher/status/985306185141284864

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();