ako vytvorit dotaz na databazu
- Matej123
- Člen | 150
Ahojte, chcel by som vytvorit takyto dotaz :
<?php
$this->database->query("SELECT * FROM application WHERE application.ID NOT IN("
. "SELECT application.ID FROM application_server)")
?>
ako to zapisem pomocou metod where() a select() ? Ked to pouzijem sposobom uvedenym hore tak mi to nevracia instancie ActiveRow a ja ich potrebujem.
Jedna sa o klasicky dotaz ked mam tabulky application, application_server a server. Application_server je tabulka na zaklade vztahu M:N medzi application a server. Chcem ziskat udaje z application, ktore sa nenachadzaju v tabulke application_server.
Dakujem.
- Matej123
- Člen | 150
jasne, diky :) dnes mi to nemysli :( inak ten select az za table sa ma dat ;)
ViPErCZ napsal(a):
$this->database ->select("*") ->table("application") ->where("application.ID NOT IN(?)", new SqlLiteral("SELECT application.ID FROM application_server"));
doplněním klasického select ;-)
- David Matějka
- Moderator | 6445
funguje to spravne, dakujem. Ale mozem vypisat iba application.ID, ako to zmenit aby som vypisal ktorykolvek stlpec z tabulky application?
pri pozadavku na jiny sloupec to hodilo nejakou chybu nebo co?
- Matej123
- Člen | 150
ano vyhodilo ze nepozna ten stlpec, ale uz je to v poriadku. Ale znova mam
problem, ak vytvorim dva riadky v tabulke application, ktore nie su
v application tak mi ich vrati dobre, ale ak mam jeden riadok, ktoreho
application_id je v application_server a iny riadok ktory nema
v application_server svoje application_id, tak mi nevrati ziaden riadok. Staci
ak jedno application_id je v application_server a stale mi vyhodi nulu :( . AKo
pocet riadkov myslim.
Neviem preco :(
David Matějka napsal(a):
funguje to spravne, dakujem. Ale mozem vypisat iba application.ID, ako to zmenit aby som vypisal ktorykolvek stlpec z tabulky application?
pri pozadavku na jiny sloupec to hodilo nejakou chybu nebo co?
Editoval Matej123 (11. 4. 2016 14:46)
- Matej123
- Člen | 150
uz som to poriesil :) .
Matej123 napsal(a):
ano vyhodilo ze nepozna ten stlpec, ale uz je to v poriadku. Ale znova mam problem, ak vytvorim dva riadky v tabulke application, ktore nie su v application tak mi ich vrati dobre, ale ak mam jeden riadok, ktoreho application_id je v application_server a iny riadok ktory nema v application_server svoje application_id, tak mi nevrati ziaden riadok. Staci ak jedno application_id je v application_server a stale mi vyhodi nulu :( . AKo pocet riadkov myslim.
Neviem preco :(David Matějka napsal(a):
funguje to spravne, dakujem. Ale mozem vypisat iba application.ID, ako to zmenit aby som vypisal ktorykolvek stlpec z tabulky application?
pri pozadavku na jiny sloupec to hodilo nejakou chybu nebo co?
- Unlink
- Člen | 298
Matej123 napsal(a):
ano vyhodilo ze nepozna ten stlpec, ale uz je to v poriadku. Ale znova mam problem, ak vytvorim dva riadky v tabulke application, ktore nie su v application tak mi ich vrati dobre, ale ak mam jeden riadok, ktoreho application_id je v application_server a iny riadok ktory nema v application_server svoje application_id, tak mi nevrati ziaden riadok. Staci ak jedno application_id je v application_server a stale mi vyhodi nulu :( . AKo pocet riadkov myslim.
Neviem preco :(
A v čom bol problém a ako si ho vyriešil :)
- Matej123
- Člen | 150
Pouzil som ten kod:
<?php
$this->database
->table("application")
->select("*")
->where("application.ID NOT IN(?)", new SqlLiteral("SELECT application.ID FROM application_server"));
?>
no v application_server mam atributy APPLICATION_ID a SERVER_ID. v SqlLiteral v selecte som musel pouzit APPLICATION_ID nie application_ID :
<?php
$this->database
->table("application")
->select("*")
->where("application.ID NOT IN(?)", new SqlLiteral("SELECT APPLICATION_ID FROM application_server"));
?>
Unlink napsal(a):
Matej123 napsal(a):
ano vyhodilo ze nepozna ten stlpec, ale uz je to v poriadku. Ale znova mam problem, ak vytvorim dva riadky v tabulke application, ktore nie su v application tak mi ich vrati dobre, ale ak mam jeden riadok, ktoreho application_id je v application_server a iny riadok ktory nema v application_server svoje application_id, tak mi nevrati ziaden riadok. Staci ak jedno application_id je v application_server a stale mi vyhodi nulu :( . AKo pocet riadkov myslim.
Neviem preco :(A v čom bol problém a ako si ho vyriešil :)