Jak udělat z LEFT join INNER join?

kini
Člen | 11
+
0
-

Zdravím,
snažím se spojit dvě tabulky pomocí INNER join ale daří se mi jen LEFT join a nemůžu nikde najít jak se určuje který join se použije.

SELECT *
FROM `category`
LEFT JOIN `forum` ON `category`.`category_id` = `forum`.`category_category_id`
WHERE (`forum`.`category_category_id` = `category`.`category_id`)


return $this->database->table('category')->select('*, :forum.category_category_id = category.category_id')->fetchAll();

Editoval kini (18. 7. 2017 12:30)

David Matějka
Moderator | 6445
+
+1
-

ahoj, myslim, ze to urcit nejde a vzdy se pouzije left join.

Ot@s
Backer | 476
+
0
-

Dá se to „nasimulovat“ tak, že v závislém sloupci budeš mít vždy nějakou hodnotu (tj. NOT NULL). Pak je Ti může být „jedno“, jestli je tam INNER nebo LEFT.

CZechBoY
Člen | 3608
+
0
-

jo, to je dost workaround a nevim jak se k tomu jaká databáze postaví…

kini
Člen | 11
+
-2
-

Tak jsem to nakonec přepsal v souboru SqlBuilder.php.

matopeto
Člen | 395
+
0
-

kini napsal(a):

Tak jsem to nakonec přepsal v souboru SqlBuilder.php.

To moze sposobit viac problemov ako rieseni

Pokial chces normalny sql select tak zavoalj normalne ->query("SELECT FROM ... LEFT JOIN...");

revoke
Člen | 36
+
0
-

Myslím, že by ti stačilo přidat where:

... ->where('forum.category_category_id IS NOT NULL') ...