Autor | Zpráva | ||
---|---|---|---|
maikis Profil * |
#1 · Zasláno: 30. 8. 2006, 10:12:29
lidi jak udělat hledání obyčejný sql dotaz umím jenže mě to má hledat ve více tabulkách ...
jsou dvě tabulky s kategoriemi jsou na sebe vázané >kat1 id nazev >kat2 id nazev id1 pak mám tabulky s daty a jsou vytvořené způsobem že název je číslo id(kat) a pokud je to kat1 tak a_*id nebo kat2 b_*id tz. např: >a_1 //je to kat1 id=1 id nazev popis >b_1 //kat2 id=1 id nazev popis potřbeuju to stím taky že mi to ve výsledku vypíše i pod jakou kat. to patří tak ID kat1 a kat2 pokud není kat2 tak 0 pochopili jste to? a chtěl bych to prohledávat vždy všecko a nenapadá mě jak :-D pokud to vubec pude ale mělo by jít nějak pokud se o to někdo pokusí budu rád já se do toho pouštím taky ted ikdyž se mi to ale nedaří : - / |
||
maikis Profil * |
#2 · Zasláno: 30. 8. 2006, 10:14:44
a tabulek s daty a_* b_* je tolik kolik je položek v kat1 nebo kat2 takže by tam mělo být i něco co vám vypíše ty id aby jste mohli určit názvy těch dalších tabulek ve kterých to má hledat
|
||
souki Profil |
#3 · Zasláno: 30. 8. 2006, 10:19:55
tak to je imho už špatně navrřená databáze
|
||
maikis Profil * |
#4 · Zasláno: 30. 8. 2006, 10:24:11
jakto? ono ty první dvě tabulky kat1 a kat2 jsou tak kvůli menu a ten zbytek kvůli importu dat do DB já totiž ty data tam nasoukám pod ty položky v menu tímto způsobem, musí to jít nějak udělat aby to projelo postupně všecko
nebo snad ne? |
||
Joker Profil |
#5 · Zasláno: 30. 8. 2006, 11:37:26 · Upravil/a: Joker
maikis
Pokud máte v tabulce sloupce anebo v databázi tabulky pojmenované: jmeno1, jmeno2, jmeno3, jmeno4,... tak bych zbystřil. Tohle bývá známka špatného návrhu databáze. Jinak to na co se ptáte: od toho slouží v SQL dotazu spojení tabulek- JOIN. To vytvoří novou tabulku, která je kartézským součinem těch spojovaných tablek (tj. obsahuje všechny kombinace jejich řádků). Málokdy potřebujete všechny kombinace, většinou si řádky párujete podle nějaké hodnoty (a často dokonce máte řádky 1:1 podle nějakého id) Takže tab1 JOIN tab2 ON tab1.sloupec = tab2.sloupec První věc teda jakmile použijete JOIN, tak na všechny sloupce vyskytující se v obou tabulkách se musíte odkazovat jako tabulka.sloupec. A z praktických důvodů bych to dělal u úplně všech sloupců Druhá věc, že při spojení JOIN ON budou ve výsledku jen řádky obou tabulek, které lze podle té podmínky spárovat, tj. pokud mám třeba v první tabulce ID kterému neodpovídá žádné ID z druhé tabulky, vůbec se takový řádek ve výsledku neobjeví. Pokud byste ho tam chtěl, musíte použít LEFT/RIGHT (OUTER) JOIN |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0