View Full Version : Comando SQL
Ciao!
ho un piccolo problema con il mio database, ho 2 tabelle con cui dover collegare per cercare ad esempio, il mio nome, l'id, l'oggetto e l'id dell'oggetto
nella tabella player si trova: Nome ed id
nella tabella item si trova: l'oggetto e l'id dell'oggetto.
io uso:
select name, player.id, oggetto, id_oggetto from player, item
where name = 'Mario';
vado ad avviare la query e mi trovo tutte le persone che sono nel database
con il nome mario... ma che anche se si chiama ad esempio:
'Giuseppe' mi trovo che questa persona si chiama mario :eek:
Qualcuno sa dirmi come fare? :)
ps. ho messo player.id perchč anche nell'altra tabella si trova id e quindi ho specificato quale prendere.
wingman87
13-03-2010, 18:24
Non c'č una relazione tra le due tabelle? Probabilmente hai interpretato male il risultato della query che cosė come č scritta dovrebbe fare il prodotto cartesiano tra tutte le tuple con nome Mario della prima tabella e tutte le tuple della seconda.
io devo fare una query dove io cerco la persona mario,
e dovrebbe dirmi tutti gli oggetti che usa.
in questo caso ho usato:
select name, player.id, vnum, window from player,item where name = 'mario';
ho provato anche cosė:
select name, player.id, vnum, window from player,item where name = 'mario' and vnum = 12609;
vnum sarebbe l'id dell'oggetto per specificare di trovare mario e se ha quest'oggetto.
cosė mi trova soltando quel tipo di oggetto specificato ma che usa non solo
mario ma anche gli altri e che gli altri vengono visualizzato con il nome mario.
invece dovrebbe uscire soltando mario con quell'oggetto.
bobbytre
13-03-2010, 19:16
visto che hai piu tabelle credo che dovresti usare JOIN per estrarre i dati
qualcosa tipo:
SELECT * FROM tabella_1 LEFT JOIN tabella_2 ON tabella_1.id = tabella_2.id WHERE tabella_1.nome = 'mario';
ho provato con il left join in questo modo:
select name, player.id, item.vnum, item.window from player left join item on player.id = item.id where name = 'mario';
mi trova soltando l'utente mario ma nei campi degli oggetti e id oggetto esce null.
SELECT *
FROM player, item
where player.id=item.id
and player.name='mario';
Fatto grazie :)
l'errore era che facevo il left join:
select name, player.id, item.vnum, item.window from player left join item on player.id = item.id where name = 'mario';
e l'errore era tra player.id = item.id
visto che non erano uguali ho risolto mettendo player.id = item.vnum
mi ero dimenticato che l'id della tabella item fa riferimento ad
un'altro tipo di valore :)
Grazie per l'aiuto!
Fatto grazie :)
l'errore era che facevo il left join:
select name, player.id, item.vnum, item.window from player left join item on player.id = item.id where name = 'mario';
e l'errore era tra player.id = item.id
visto che non erano uguali ho risolto mettendo player.id = item.vnum
mi ero dimenticato che l'id della tabella item fa riferimento ad
un'altro tipo di valore :)
Grazie per l'aiuto!
ora basta grassetto please ;)
cmq l'errore nn era il left join....ma il campo.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.