Autor | Zpráva | ||
---|---|---|---|
H13 Profil |
#1 · Zasláno: 2. 5. 2009, 15:32:31 · Upravil/a: H13
Ahoj, potřeboval bych poradit, dá se do mysql dotazu zahrnout podmínka na existenci jedné z x tabulek, příklad:
IF tabulka existuje (tabulka2) SELECT tabulka1.*, tabulka2.id AS id2 FROM tabulka1 AS tabulka1 LEFT JOIN tabulka2 AS tabulka2 ON tabulka2.categoryid = tabulka1.id ORDERED BY tabulka1.id ELSE SELECT tabulka1.*, 0 AS id2 FROM tabulka1 AS tabulka1 ORDERED BY tabulka1.id Tedy pokud v databázi existuje tabulka 2, pak ji "left joini" a získej hodnotu z jejího id pro id2 pokud neexistuje, "ne left joini" ji a nastav hodnotu pro id2 = 0 Díky |
||
TomášK Profil |
#2 · Zasláno: 2. 5. 2009, 17:25:26
Přijde mi trochu podezřelé testovat tabulku na existenci, ale možná existuje dobré zdůvodnění. Přes INFORMATION_SCHEMA se dá zjistit, jestli tabulka existuje nebo ne - a vytvořit na úrovni aplikace dle toho druhý dotaz. Začlenit to do jednoho SELECTu spíš nepůjde...ale třeba mě Kajman zas překvapí :)
|
||
H13 Profil |
#3 · Zasláno: 2. 5. 2009, 18:21:49
TomášK
Přijde mi trochu podezřelé testovat tabulku na existenci Stránku mám poskládanou z více "miniaplikací" a aplikace1 (tabulka1) využívá aplikaci2 (tabulka2). Aplikace2 však nemusí být nainstalovaná, takže v tom případě aplikace1 nenačítá data z aplikace2. Zajímá mě jestli není něco jako DROP table if exists... něco jako: SELECT if table exists |
||
Kajman_ Profil * |
#4 · Zasláno: 3. 5. 2009, 15:42:38
Proč si jen neuděláte práznou tabulku2?
|
||
H13 Profil |
#5 · Zasláno: 4. 5. 2009, 20:58:44 · Upravil/a: H13
Kajman_
:-) ... při instalaci aplikace1 vytvořit automaticky tabulku2, pokud již neexistuje ... díky moc, databázový nadčlověče ještě jednou díky moc |
||
Časová prodleva: 15 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0