Autor | Zpráva | ||
---|---|---|---|
Marek P Profil * |
#1 · Zasláno: 16. 5. 2014, 21:05:13 · Upravil/a: Marek P
Ahoj, poradí prosím někdo s vytvořením dotazu do mysql databáze?
- mám tři tabulky s názvy: "den", "mesic", "rok". - z tabulky: "den" bych chtěl načíst všechny řádky, jejichž sloupec s názvem "dpar1" obsahuje hodnotu "yes" a sloupec s názvem "dpar2" hodnotu "1". - z tabulky: "mesic" bych chtěl načíst všechny řádky, jejichž sloupec s názvem "mpar1" obsahuje hodnotu "yes" a sloupec s názvem "mpar2" hodnotu "1" nebo "mpar1" obsahuje hodnotu "blank" a sloupec s názvem "mpar2" hodnotu "1" nebo "mpar1" obsahuje hodnotu "back" a sloupec s názvem "mpar2" hodnotu "2". - z tabulky: "rok" bych chtěl načíst všechny řádky, jejichž sloupec s názvem "rpar1" obsahuje hodnotu "0" a sloupec s názvem "rpar2" hodnotu "1". zkoušel jsem to sesmolit, ale nejde mi to, trápím se s tím už 4 hodiny :-( $par = array('yes', 1, 'yes', 1, 'blank', 1, 'back', 2, 0, 1); $sql = 'SELECT `den.id`, `den.name` FROM `den` WHERE `dpar1` = ? AND `dpar2` = ? JOIN `mesic` ON `mesic.id`, `mesic.name`, `rok.next`, `rok.prew` WHERE (`mpar1` = ? AND `mpar2` = ?) OR (`mpar1` = ? AND `mpar2` = ?) OR (`mpar1` = ? AND `mpar2` = ?) JOIN `rok` ON `rok.id`, `rok.name`, `rok.first` WHERE `mpar1` = ? AND `mpar2` = ?;'; $stmt = $pdo->prepare($sql); $stmt->execute($par); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_GROUP); Díky moc za případnou pomoc. EDIT KÓDU $par = array('yes', 1, 'yes', 1, 'blank', 1, 'back', 2, 0, 1); $sql = 'SELECT `den.id`, `den.name` FROM `den` WHERE `den.dpar1` = ? AND `den.dpar2` = ? JOIN `mesic` ON `mesic.id`, `mesic.name`, `rok.next`, `rok.prew` WHERE (`mesic.mpar1` = ? AND `mesic.mpar2` = ?) OR (`mesic.mpar1` = ? AND `mesic.mpar2` = ?) OR (`mesic.mpar1` = ? AND `mesic.mpar2` = ?) JOIN `rok` ON `rok.id`, `rok.name`, `rok.first` WHERE `rok.rpar1` = ? AND `rok.rpar2` = ?;'; $stmt = $pdo->prepare($sql); $stmt->execute($par); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_GROUP); |
||
Kajman Profil |
#2 · Zasláno: 17. 5. 2014, 08:51:10
A potřebujete tři výsledky z jednotlivých tabulek? Nebo ty tabulky mají mezi sebou nějaké provázání?
|
||
Marek P Profil * |
#3 · Zasláno: 17. 5. 2014, 13:12:49 · Upravil/a: Marek P
Kajman:
Nemají mezi sebou žádné provázání, jedná se o výpis z jednotlivých tabulek. Asi jsem JOIN nepochopil, myslel jsem, že se stím dájí načíst data z více tabulek jedním voláním do DB. Doplnění: Jedná se o výpis z jednotlivých tabulek ale každá tabulka má jiné podmínky... |
||
Kajman Profil |
#4 · Zasláno: 17. 5. 2014, 19:13:10
Tak udělejte tři dotazy. Join je na něco jiného - spojování (či kombinování) záznamů z více tabulek. Where, které používáte, vypadá použitelně.
|
||
Časová prodleva: 10 let
|
0