• 8 odgovora
  • 3.983 pregleda
select u dve tabele sa inner join ... 04.06.2006. u 01:53 · pre 248 meseci #1
Do sada sam koristio SQL sa prostim INTERSECT i no problemo. A sada MySQL sa "ne može intersect"...uf

Dakle,
čitao sam mnogo o ovome i da li sam malko priglup post'o ili je to posledica čitanja u ove sitne sate nakon celodnevnog rada, ko to zna...

Elem, preblem mi je sledeći:

Code:

Table: names
+----+----------+--------+
|  id  |    name   |   code  |
+----+----------+--------+
|  1   |    Pera    |    21    |
|  2   |    Mika    |    35    |
+----+----------+--------+

Table: years
+----+----------+--------+
|  id  |    year    |   code  |
+----+----------+--------+
|  8   |    1971   |    28    |
|  9   |    1975   |    21    |
+----+----------+--------+


treba mi ekvivalent sledećeg query-ja:

SELECT code FROM names WHERE name='Pera' INTERSECT SELECT code FROM years WHERE year > 1974

Ovaj upit bi trebao da vrati rezultat 21.

Kako ovo napisati sa nekim od JOIN-a?

Re: select u dve tabele sa inner join ... 04.06.2006. u 08:35 · pre 248 meseci #4
Hvala Sale,

samo mislim da treba dodati šta se selektuje:

SELECT t1.code FROM ....

a nakon toga, ako u tabeli years imam više pogodaka, toliko puta mi vrati isti rezultat, pa sam iskoristio i DISTINCT.

Kompletan query sada izgleda kao

SELECT t1.code FROM names t1, years t2 WHERE t1.name='Pera' AND t2.year > 1974

Ukoliko niko nema primedbi, primiću ovu sintaksu k znanju i koristiti je za dalj[š]e :)

Veliki pozdrav
Re: select u dve tabele sa inner join ... 04.06.2006. u 08:43 · pre 248 meseci #5
Code:

SELECT t1.code 
FROM names t1 INNER JOIN years t2 ON t1.code = t2.code 
WHERE t1.name='Pera' AND t2.year > 1974
Re: select u dve tabele sa inner join ... 04.06.2006. u 17:41 · pre 248 meseci #8
eeeeeee ne lezi vraže, evo mene opet sa nastavkom problema.

ukoliko u drugoj tabeli (years) postoji više upisa sa istom vrednošću polja code, query

SELECT * FROM names t1 INNER JOIN years t2 ON t1.code=t2.code WHERE t1.name='Pera'

mi vrati n puta istu kolonu (zapravo ne istu nego sa svim poljima iz t1 i po jednim poljem iz t2 koje se menja), gde je n broj upisa u years tabeli sa istom vrednošću polja code.

Kako ovo sad da rešim?
Re: select u dve tabele sa inner join ... 07.06.2006. u 18:49 · pre 248 meseci #9
Cekaj, pa sta ti sad treba SQL da vrati: samo Code ili sve kolone? Ako ti treba samo code onda u onaj moj SQL dodaj samo DISTINCT i to ti je to.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme