Autor Zpráva
neznalek
Profil *
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
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 *
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
neznalek
řekl bych, že oba články popisují normu SQL
mySQL tuto normu SQL nepodporuje plně (a právě podpora INTERSECT chybí)
Neznalek
Profil *
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 *
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 *
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.
Toto téma je uzamčeno. Odpověď nelze zaslat.