Autor | Zpráva | ||
---|---|---|---|
napoj Profil * |
#1 · Zasláno: 31. 8. 2008, 18:56:11
Ahoj, prosimvas uz si vubec nevim rady. Na locahlostu mam MySQL: 5.0.45-community-nt, tam funguje vse jak ma. Na serveru je napsano toto: "Používaný MySQL modul v PHP je kompilována pro MySQL 5.0.45 a server používá verzi 4.0.27. Toto může způsobit problémy."
Mam tady tento kod: SELECT 'uzivatele'zdroj, IF( k.hodnota != '' OR k.sleva_kod = 'CZ2031000', 'Ano', 'Ne' ) AS pouzito, u.jmeno, u.prijmeni, j.zaplaceno, k.id_kod, k.sleva_kod, k.sleva, NULL firma, NULL id_indiv, k.hodnota FROM uzivatelske_kody k, objednavky j, uzivatele u WHERE k.id_kod = j.id_kod AND j.id_uziv = u.id_uziv UNION ALL SELECT 'individualni_kon', IF( k.hodnota != '' OR k.sleva_kod = 'CZ2031000', 'Ano', 'Ne' ) AS pouzito, NULL , NULL , i.zaplaceno, k.id_kod, k.sleva_kod, k.sleva, i.firma, i.id_indiv, k.hodnota FROM uzivatelske_kody k, individualni_kon i WHERE k.id_kod = i.id_kod UNION ALL SELECT 'uzivatelske_kody', IF( k.hodnota != '' OR k.sleva_kod = 'CZ2031000', 'Ano', 'Ne' ) AS pouzito, NULL , NULL , NULL , k.id_kod, k.sleva_kod, k.sleva, NULL , NULL , k.hodnota FROM uzivatelske_kody k WHERE k.id_kod NOT IN ( SELECT id_kod FROM individualni_kon UNION SELECT id_kod FROM objednavky ) Jak jsem jiz rikal, na localhostu vse krasne bezi, ale na serveru mi vypise hlasku "#1064 - Va-Bše syntaxe je nějaká divná bl-Bízko 'SELECT id_kod FROM individualni_kon UNION SELECT id_kod FROM ob' na řádku 16 " Ja uz si opravdu navim rady. Predem dekuji za odpovedi. |
||
joe Profil |
#2 · Zasláno: 31. 8. 2008, 19:14:55 · Upravil/a: joe
A funguje dotaz, když je v IN jen jeden dotaz, bez UNION?
--- Jinak tento zápis je správný? Vidím to poprvé... SELECT 'uzivatele'zdroj ...? |
||
napoj Profil * |
#3 · Zasláno: 31. 8. 2008, 19:16:50
jj to funguje, funguje to i kdyz odstranim
NOT IN ( SELECT id_kod FROM individualni_kon UNION SELECT id_kod FROM objednavky ) |
||
Alphard Profil |
#4 · Zasláno: 31. 8. 2008, 19:28:06
pokud vím, starší verze nezvládají takovéto subdotazy
budete to asi muset obejít spojením |
||
napoj Profil * |
#5 · Zasláno: 31. 8. 2008, 20:04:42
Mohl byste mi to prosim nekdo ukazat? ja uz dneska opravdu vubec nevim co s tim :(
|
||
joe Profil |
#6 · Zasláno: 31. 8. 2008, 20:26:08
Nevim jak to myslel Alphard, ale dalo by se to obejít i takhle asi
NOT IN (SELECT id_kod FROM individualni_kon) AND NOT IN(SELECT id_kod FROM objednavky) Možná s OR, logický myšlení mám teď úplně jinde:-) |
||
napoj Profil * |
#7 · Zasláno: 31. 8. 2008, 20:32:01
bohuzel, toto nefunguje :(
#1064 - Va-Bše syntaxe je nějaká divná bl-Bízko 'SELECT id_kod FROM individualni_kon) OR NOT IN(SELECT id_kod FR' na řádku 14 |
||
Alphard Profil |
#8 · Zasláno: 31. 8. 2008, 20:44:39 · Upravil/a: Alphard
„Nevim jak to myslel Alphard, ale dalo by se to obejít i takhle asi“
tak, jak jsem napsal poddotazy jsou podporovány od verze 4.1, kdo nevěří viz manuál napoj nezlobte se, ale momentálně nemám náladu přepisovat ten dotaz, není to úplně triviální krom toho, 4.0.27 je vykopávka, uvožoval bych o změně hostingu, mohou se objevit i jiné problémy |
||
joe Profil |
#9 · Zasláno: 31. 8. 2008, 20:55:08
Alphard
už jsem to pochopil... Myslel jsem, že jde nějak spojit ty dva dotazy jinak, ale to by stejně nemělo význam, protože nefunguje ani to, co jsem napsal já... napoj Místo toho poddotazu to napsat bez něj, spojením, s použitím join. Snad takhle to bylo myšleno. |
||
napoj Profil * |
#10 · Zasláno: 31. 8. 2008, 21:03:36
Kdyz pouziji jon, tak se vytvori plno nepotrebnych dat (zacne se vsechno se vsim ruzne kombinovat) a z nynejsich 10 zaznamu se vypise plno dalsich. Tomu jsem chtel prave zabranit tim UNION dlouho jsem to patlal do sebe az mi to na localu fungovalo, pak jsem to hodil na server a bylo po radosti :(
Mohl by mi prosim nekdo pomoct vytvorit tento dotaz? |
||
Kajman_ Profil * |
#11 · Zasláno: 31. 8. 2008, 23:04:19
SELECT 'uzivatelske_kody', IF( k.hodnota != '' OR k.sleva_kod = 'CZ2031000', 'Ano', 'Ne' ) AS pouzito, NULL , NULL , NULL , k.id_kod, k.sleva_kod, k.sleva, NULL , NULL , k.hodnota FROM uzivatelske_kody k WHERE k.id_kod NOT IN ( SELECT id_kod FROM individualni_kon UNION SELECT id_kod FROM objednavky ); SELECT 'uzivatelske_kody', IF( k.hodnota != '' OR k.sleva_kod = 'CZ2031000', 'Ano', 'Ne' ) AS pouzito, NULL , NULL , NULL , k.id_kod, k.sleva_kod, k.sleva, NULL , NULL , k.hodnota FROM objednavky o right join uzivatelske_kody k on (k.id=o.id_kod) left join individualni_kon i on (k.id=i.id_kod) where o.id_kod is null and i.id_kod is null; Ale doporučuji vydupat si novější mysql, jak radí ostatní! |
||
Časová prodleva: 16 let
|
0