ugrás a tartalomhoz

MySQL : 2 tábla összehasonlítása : érdekes eredmények

nyne99 · 2007. Júl. 30. (H), 21.25
Sziasztok!

Van egy érdekes problémám :
Van két MySQL táblám. Az egyik a 'numbers', a másik a 'harmadik'. A 'numbers'-nek 4 mezoje van : id,num1,num2,num3. A 'harmadik'-nak 2 : id,num3.
'numbers' 8 sora:
id num1 num2 num3
-------------------------
1 10 202 143143
2 10 202 143143
3 2323 444 112
4 234 325 8867
5 4538 436367 2525
6 2446 6436326 23424
7 2446 64363 23424
8 2446 64363 23424

'harmadik' 8 sora:
id num3
--------
1 111
2 222
3 112
4 8867
5 2525
6 23424
7 23424
8 23424

Összehasonlítom a két táblát, hogy melyik sorokban egyezik a 'num3' oszlop :
SELECT numbers.id,numbers.num3 FROM numbers,harmadik WHERE numbers.num3=harmadik.num3 , akkor a köv. eredményt adja:

id num3
---------
3 112
4 8867
5 2525
6 23424
7 23424
8 23424
6 23424
7 23424
8 23424
6 23424
7 23424
8 23424
-----------
12 rows in set

Tudja valaki , hogy mi lehet a hiba?
Ha úgy hasonlítom össze, h a nem egyezőeket dobja ki, akkor 52 soros eredményt ad a 2 sor helyett...

Előre is köszönöm a válaszokat!
 
1

nem írtad le, hogy mit szeretnél kapni

Táskai Zsolt · 2007. Júl. 30. (H), 22.05
a MySql természetesen pontosan azt adta, amit kérdeztél tőle. vajon mi az, amit szerettél volna?
2

sql ismeretek

zila · 2007. Júl. 30. (H), 22.46
A 'harmadik' tábládban három mezőhöz (6,7,8) három mező tartozik a numbers táblában is, vagyis teljesen korrekt eredmény kaptál.
select id, num3 from numbers where num3 in (select distinct num3 from harmadik)
Ez már közelebb van ahhoz amit szeretnél.

A lekérdezések eredménye mindig egy halmaz. Így érdemes a halmazműveleteknek utánanézni (UNION, INTERSECT, MINUS, PLUS) persze mysql nem tudja mindegyiket, de rendes adatbáiziskezelők igen.
3

köszönöm

nyne99 · 2007. Júl. 30. (H), 22.52
Köszönöm a gyors válaszokat!
Már értem, h mi a gond.