provázaný SQL dotaz – dvě tabulky
- kolaloka
- Člen | 69
Jak položit provázaný dotaz na dvě tabulky?
API pro databázi nette jsem rozšifroval do té míry, že na jednu tabulku umím položit jakýkoli dotaz, ale napřiklad, jak napsat toto?
SELECT comp.name, tracker.time FROM comp, tracker WHERE comp.id = tracker.comp;
děkuji moc předem všem
- CZechBoY
- Člen | 3608
Muzes zkusit joinWhere, neni asi zqtim dokumentovanej tak te odkazu aspon na
test, snad z nej neco pochopis.
https://github.com/…ndition.phpt
- JardaS
- Člen | 1
Pro „velké“ projekty používám zásdaně dibi.
Je to jednak proto, že jsem primárně databázista a vyhovuje mi sestavit SQL
příkaz tak jak potřebuji
a jednak zasávám názor, že co může udělat databáze má udělat a nemá
se to tahat na klienta.
Takže používám nejen tabulky, ale i pohledy, uložené procedury a funkce,
triggery, události apod,
což již dnes nabízí prakticky každá DB včetně MySQL. To všechno se dá
z pohodlně dibi obsloužit.
Docela mě mrzí, že dnes se oblast DB a SQL dost podceňuje a spousta lidí si
myslí, že ji nemusí ovládat a zachrání je nějaké ORM. U rozsáhlé
aplikace se stovkami tabulek, složitými procesy a rozsáhlými výběry dat si
to dost dobře neumím představit.
SELECT comp.name, tracker.time
FROM comp
JOIN tracker ON tracker.comp = comp.id;
- kolaloka
- Člen | 69
Už jsem to pochopil.
Jakýkoli dotaz musím položit v presenteru pomocí:
<?php
$this->template->firstMonth = $this->database->query('SELECT * FROM track WHERE .....');
?>
a pak ho vyčíst v latte např. takhle prakticky do tabulky:
<?php
{foreach $firstMonth as $prace}
<table>
<tr><td><a n:href="Track:show $prace->id">{$prace->comp}</a></td>
<td>{$prace->date}</td>
<td>{$prace->sub}</td>
.
.
</tr></table>
?>
vypisuju pro podobné zoufalce, jako jsem já, až to budou číst
Editoval kolaloka (6. 12. 2016 16:35)