33 messaggi dal 29 agosto 2008
Salve a tutti, sto avendo un problema su una query, vi spiego:
Io vorrei che la mia query mi restituisca due campi(nome,età) presi da due tabelle,dove nome della prima tabella sia uguale alla 2 e che nome sia uguale a marcella ma anche nome sia uguale a cosimo...vi faccio vedere la query
select t2.nome,t1.eta
from tab1 t1
inner join tab2 t2 on
t1.nome=t2.nome
where t1.nome="marcella" and t2.nome="cosimo"


ma questa non mi restituisce due righe con i due nomi ma uno...come devo fare???

Grazie anticipatamente e ciao
53 messaggi dal 28 ottobre 2005
Ciao

scusa ma la query che hai scritto non può darti dei record.
Se non ho capito male, credo che per risolvere il tuo problema
dovresti usare gli ID e scrivere la query in questo modo

select t2.nome,t1.eta 
from tab1 t1 
inner join tab2 t2 on 
<b>t1.id=t2.id </b> 
where t1.nome="marcella" and t2.nome="cosimo"
33 messaggi dal 29 agosto 2008
il campo nome è univoco...come devo fareeee...
Modificato da guli il 25 settembre 2008 10.16 -
salve,
guli wrote:
Salve a tutti, sto avendo un problema su una query, vi spiego: Io vorrei che la mia query mi restituisca due campi(nome,età) presi da due tabelle,dove nome della prima tabella sia uguale alla 2 e che nome sia uguale a marcella ma anche nome sia uguale a cosimo...vi faccio vedere la query

select t2.nome,t1.eta
from tab1 t1
inner join tab2 t2 on
t1.nome=t2.nome
where t1.nome="marcella" and t2.nome="cosimo"

ma questa non mi restituisce due righe con i due nomi ma uno...come devo fare???

non che abbia capito molto
e' solitamente buon costume fornire un modello ridotto con DDL e qualche riga INSERT INTO per facilitare sia la comprensione che l'esecuzione
ad ogni modo, sempre che io abbia capito cosa tu abbia sottomano e cosa tu stia cercando,
SET NOCOUNT ON;
USE tempdb;
GO
CREATE TABLE dbo.t1 (
Nome varchar(10),
Eta int
);
CREATE TABLE dbo.t2 (
Nome varchar(10),
Eta int
);
GO
INSERT INTO dbo.t1 VALUES ( 'Andrea', 1 );
INSERT INTO dbo.t1 VALUES ( 'Stella', 1 );
INSERT INTO dbo.t1 VALUES ( 'Cinzia', 1 );
INSERT INTO dbo.t1 VALUES ( 'Marcella', 1 );
INSERT INTO dbo.t1 VALUES ( 'Cosimo', 1 );

INSERT INTO dbo.t2 VALUES ( 'Francesca', 1 );
INSERT INTO dbo.t2 VALUES ( 'Paolo', 1 );
INSERT INTO dbo.t2 VALUES ( 'Cinzia', 1 );
INSERT INTO dbo.t2 VALUES ( 'Marcella', 1 );
INSERT INTO dbo.t2 VALUES ( 'Cosimo', 1 );
INSERT INTO dbo.t2 VALUES ( 'Andrea', 1 );
GO
SELECT t1.Nome, t2.Eta
FROM dbo.t1
JOIN dbo.t2 ON t1.Nome = t2.Nome
AND t1.Eta = t2.Eta
WHERE t1.Nome IN ('Marcella', 'Cosimo');
GO
DROP TABLE dbo.t1, dbo.t2;
--<--------
Nome Eta
--------
-----------
Marcella 1
Cosimo 1

saluti

Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz - http://italy.mvps.org
http://www.hotelsole.com - http://www.hotelsolericcione.de
33 messaggi dal 29 agosto 2008
ok...riuscita..la posto per caso qualcuno ha bisogno...

select t2.nome,t1.eta
from tab1 t1
inner join tab2 t2 on
t1.id=t2.id
where t1.nome="marcella" 
UNION
select t2.nome,t1.eta
from tab1 t1
inner join tab2 t2 on
t1.id=t2.id
where t1.nome="cosimo"


Grazie a tutti..ciao
Modificato da guli il 25 settembre 2008 12.00 -
Modificato da guli il 25 settembre 2008 12.01 -
beh, se posso interferire, invece della UNION:

select t2.nome,t1.eta 
from tab1 t1 
inner join tab2 t2 on 
t1.id=t2.id 
where t1.nome="marcella" or t1.nome="cosimo"

Ormai programmano tutti... ma la professionalità appartiene a pochi

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC