Autor Zpráva
H13
Profil
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
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
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 *
Proč si jen neuděláte práznou tabulku2?
H13
Profil
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
Toto téma je uzamčeno. Odpověď nelze zaslat.

0