Autor | Zpráva | ||
---|---|---|---|
neznalek Profil * |
#1 · Zasláno: 16. 12. 2006, 01:11:47
Chtel bych Vas poprosit o radu. Snazim se udelat prunik dvou dotazu.
SELECT t.id_t, t.nazev, t.datum, t.zeme_konani FROM zapis z, hrac h, turnaj t WHERE z.hrac = h.id_hr AND z.turnaj = t.id_t AND h.prijmeni='Petrovová' INTERSECT SELECT t.id_t, t.nazev, t.datum, t.zeme_konani FROM zapis z, hrac h, turnaj t WHERE z.hrac = h.id_hr AND z.turnaj = t.id_t AND h.prijmeni='Hingisová' Neustale pise syntax chybu ale ja ji proste nevidim. Najde ji nekdo pls? |
||
nightfish Profil |
#2 · Zasláno: 16. 12. 2006, 07:30:02
Neustale pise syntax chybu ale ja ji proste nevidim. Najde ji nekdo pls?
nepíšeš, jakou DB používáš každopádně mySQL intersect nepodporuje (teda ne s touhle syntaxí, stejného efektu by mělo jít dosáhnout se subselecty) |
||
neznalek Profil * |
#3 · Zasláno: 16. 12. 2006, 12:40:40
Sorry, používam MySQL.
A jaktože nepodporuje? Dělám vše podle našich učebních materiálů na univerzitě a tam je napsáno - sloučení UNION, průnik INTERSECT. A na těhle všech stránkách je intersect taky popsán za správný. Tak teď nevím ... http://www.kiv.zcu.cz/~otta/vyuka/db2/cviceni03.html http://interval.cz/clanky/sql-skladani-dotazu/ |
||
nightfish Profil |
#4 · Zasláno: 16. 12. 2006, 13:03:49
neznalek
řekl bych, že oba články popisují normu SQL mySQL tuto normu SQL nepodporuje plně (a právě podpora INTERSECT chybí) |
||
Neznalek Profil * |
#5 · Zasláno: 16. 12. 2006, 13:50:56
Jj vidim. Takze pak to vidim nasledovne > nase kandidatka ved se myli. Uz nekolikrat jsem ji tam nasel chyby.
Rikas teda, resit to pres Subselecty. Ok, zkusim neco nastudovat. Dik. |
||
Kajman_ Profil * |
#6 · Zasláno: 16. 12. 2006, 14:29:31
Třeba tak nějak...
SELECT t.id_t, t.nazev, t.datum, t.zeme_konani FROM zapis z, hrac h, turnaj t WHERE z.hrac = h.id_hr AND z.turnaj = t.id_t AND h.prijmeni='Petrovová' and t.id_t in ( SELECT t.id_t FROM zapis z, hrac h, turnaj t WHERE z.hrac = h.id_hr AND z.turnaj = t.id_t AND h.prijmeni='Hingisová' ) nebo tak SELECT t.id_t, t.nazev, t.datum, t.zeme_konani FROM zapis z1, hrac h1, zapis z2, hrac h2, turnaj t WHERE z1.hrac = h1.id_hr AND z1.turnaj = t.id_t AND h1.prijmeni='Petrovová' and z2.hrac = h2.id_hr AND z2.turnaj = t.id_t AND h2.prijmeni='Hingisová' |
||
neznalek Profil * |
#7 · Zasláno: 17. 12. 2006, 14:38:58
Velice moc Vám, kluci, děkuji. Funguje to výborně. A paní kandidátce věd řeknu, že je možné, že se opět zmýlila (aneb http://student.cvut.cz/view.php?cisloclanku=2004021001) a ať mi dá lepší známku - a za Vás se přimluvím taky :)
Ještě se zeptám - už jen z pouhé zvědavosti - nebude Tvůj příklad pro DB 2x větší zátěž? Mám na mysli, že dáváš FROM hrac h1, hrac h2, zapis z1 a zapis z2. Osobně si myslím, že je to stejné jako ty UNION a INTERSECT, ale jistota je jistota. |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0