Odkaz na jinou tabulku pomocí sloupce, který není první v tabulce
- ForestCZE
- Člen | 209
Ahoj, mám nešťastně navrženou strukturu sloupců v databázi. Nemohu to překopat, protože by to znamenalo přepsat několik desítek skriptů a navíc k tomu ani nejsem oprávněn. Mám pouze za úkol pracovat s tím, co je.
Mám dvě tabulky users a characters
Vytahuji si ve foreachi všechno z tabulky users a v tom cyklu potřebuji vytáhnout id z té druhé tabulky characters na základě stejné hodnoty ve sloupci identifier.
Takže jsem udělal něco:
{snippet persons}
{ifset $persons}
{foreach $persons as $person}
<a href="#">
<div class="record">
<i class="fas fa-user"></i> {$person->firstname} {$person->lastname}<br>
<i class="fas fa-calendar"></i> {$person->dateofbirth}<br>
{$person->ref('characters', 'identifier')->id} {* Zde chci získat id z tabulky characters *}
</div>
</a>
{/foreach}
{/ifset}
{/snippet}
Problém je, že se mi to Nette automaticky snaží „párovat“ a vytáhnout na základě sloupce id a ne identifier, takže to query vypadá takto:
SELECT `id`
FROM `characters`
WHERE (`id` IN ('Char1:110000103e184f2', 'Char1:110000107a6c5a4', 'Char1:1100001134a7cba', 'Char1:110000114e4cc4e', 'Char1:11000011545506a', 'Char1:1100001174be32c', 'Char1:11000011bf6164c', 'Char1:110000134a0fc6f'))
A já potřebuji aby to vypadalo takto:
SELECT `id`
FROM `characters`
WHERE (`identifier` IN ('Char1:110000103e184f2', 'Char1:110000107a6c5a4', 'Char1:1100001134a7cba', 'Char1:110000114e4cc4e', 'Char1:11000011545506a', 'Char1:1100001174be32c', 'Char1:11000011bf6164c', 'Char1:110000134a0fc6f'))
Dá se to nějak individualně upravit? Mohu popřípadě nastavit nějakou referenci, ale nemohu změnit názvy sloupců. Jak z toho ven?
Editoval ForestCZE (27. 8. 2021 5:34)