SQL dotat - rozdil tabulek

From: Petr Pokorny <mail (zavinac)>
Date: 07. 03. 2004, 15:33 CET
Potreboval bych poradit s jednim SQL dotazem. Potrebuju ho pro MySQL.
Mam dve tabulky:

tabulka 'prvni'

id  druh
---------
1   jablko
2   hruska

tabulka 'druha'
id  druh
---------
1   jablko
2   hruska
3   rybiz


Potreboval bych sestavit dotaz ktery vrati polozky ktere jsou v tabulce
'druha' ale nejsou v tabulce 'prvni'. Takze v tomhle pripade to vrati
pouze "rybiz". Urcite to bude jednoduchy jak facka ale ja na to zaboha
nemuzu prijit.

Tohle vrati polozky ktere jsou v obou tabulkach
SELECT druha.druh FROM prvni, druha WHERE ( prvni.druh = druha.druh )

takze ja bych potreboval neco jako tohle:
SELECT druha.druh FROM prvni, druha WHERE ( prvni.druh <> druha.druh )
nebo
SELECT druha.druh FROM prvni, druha WHERE NOT ( prvni.druh =
druha.druh )

Jenze oboji vrati "jablko, hruska, rybiz, rybiz". Ja chci ale jen rybiz!
Asi tam ma byt jeste nejaky to GROUP BY a HAVING ale netusim jak :(

Zkousel jsem i mnozinove operatory, UNIUN (UNION ALL) mi funguje ale
EXCEPT nebo MINUS ne :( Jak koukam do manualu tak to MySQL nepodporuje
:(

Jak to mam udelat?

-pp21-

PS: Pokud nekdo chce experimentovat tak tady je SQL pro vytvoreni tech
dvou tabulek:


CREATE TABLE `prvni` (
  `id` tinyint(4) NOT NULL auto_increment,
  `druh` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=4 ;

INSERT INTO `prvni` VALUES (1, 'jablko');
INSERT INTO `prvni` VALUES (2, 'hruska');


CREATE TABLE `druha` (
  `id` tinyint(4) NOT NULL auto_increment,
  `druh` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=4 ;

INSERT INTO `druha` VALUES (1, 'jablko');
INSERT INTO `druha` VALUES (2, 'hruska');
INSERT INTO `druha` VALUES (3, 'rybiz');
Received on Sun, 7 Mar 2004 15:33:36 +0100

This archive was generated by hypermail 2.1.8 : 07. 03. 2004, 15:33 CET