Newsgroup: it.comp.software.database
Titolo: aiuto su una tabella ostica

ciao, avendo una tabella così
+----------+----------------------+------+-----+
| Field    | Type                 | Null | Key |
+----------+----------------------+------+-----+
| id_main  | int(10) unsigned     |      | MUL |
| id_child | int(10) unsigned     |      | MUL |
+----------+----------------------+------+-----+
dove id_main ha tutti i child
e id_main però contiene anche tutti gli id_child
quindi:
mysql> select id_main, id_child FROM test WHERE id_main = 1 OR id_child = 1
OR id_child = 18 OR id_child = 19 OR id_child = 20 OR id_child = 91
    -> ;
+---------+----------+
| id_main | id_child |
+---------+----------+
|       1 |        1 |
|       1 |       18 |
|       1 |       19 |
|       1 |       20 |
|       1 |       91 |
|      18 |        1 |
|      18 |       18 |
|      18 |       19 |
|      18 |       20 |
|      18 |       91 |
|      19 |        1 |
|      19 |       18 |
|      19 |       19 |
|      19 |       20 |
|      19 |       91 |
|      20 |        1 |
|      20 |       18 |
|      20 |       19 |
|      20 |       20 |
|      20 |       91 |
|      91 |        1 |
|      91 |       18 |
|      91 |       19 |
|      91 |       20 |
|      91 |       91 |
+---------+----------+
25 rows in set (3.18 sec)
come faccio a tenere solo un id_main a mia scelta, ad esempio l'1?
grazie, mi sto rompendo la testa ma non ci riesco.
ciao ciao
-- 
vieni, facciamo ancora un'altra foto col colombo in mano.
sarai contenta quando poi tua cugina lo vedrà 
che a venezia siamo stati anche noi...



capisco che possa essere una domanda noiosa la mia, ma nessuno riesce ad
aiutarmi?
/so che nessuno è obbligato a farlo


 
Non conosco mysql ma in Oracle avrai fatto cosi':
select a.id_main,b.id_child from test a, test b where a.id_main = 
b.id_child and a.id_main = #ilnumerochevuoitu#
(non l'ho provato perchè non ho un DB sotto mano...)

    -> ;
Non ho capito bene cosa tu voglia fare. Mi sembra che tu stia cercando di
fare qualcosa tipo
SELECT 1 AS id_main, id_child FROM test WHERE id_child IN (1,18,19,20,91)
ma mi pare poco serio :-)
Se vuoi tirare fuori le coppie (id_main, id_child) dove id_main e' 1, non
devi fare altro che 
SELECT id_main, id_child FROM test WHERE id_child IN (1,18,19,20,91)
visto che dici che "id_main contiene tutti i child", una JOIN l'hai fatta
gia' nei dati, mi pare.
O magari non ho capito una bega, nel qual caso prova magari a postare una
piccola tabellina di test con un puro "SELECT * FROM test;" e una tabella
di cosa ti piacerebbe che venisse fuori.
Leonardo
-- 
Nach doiligh domhsa mo chailin a mholadh
'S ni he amhain mar bhi si or
Bhi si mar gath greine a dhul in eadan na gloinne
Is bhi sceimh mhna na finne le mo cailin or

 
-- 
chmod -R a-w The\ untouchables.avi

 
mysql> select id_main, id_child FROM test WHERE id_main = 1 AND 
(id_child=1 OR id_child = 18 OR id_child = 19 OR id_child = 20 OR 
id_child = 91)
RdC
-- 
-- 
L'uomo non sa perchè si innamora, l'uomo viene travolto e basta
------------------------------­---------------------------
www.giordanoemilio.altervista.org
------------------------------­---------------------------
www.securitygroup.it
Società di servizio che opera nel campo
della sicurezza aziendale
------------------------------­---------------------------
www.pascallike.too.it
http://utenti.lycos.it/pascallike
il sito sulla programmazione pascal
sorgenti, tutorial ed utility
------------------------------­------------------------------
www.treves-srl.com
Libreria Internazionale Treves
Via Toledo 249/250 Napoli
------------------------------­------------------------------
www.alphalibri.com
Vendita ingrosso di libri
Via S.Anna dei Lombardi 10 , Napoli
------------------------------­-------------------------