-1

コマンドの結合結果について教えてください (MS SQL):

SELECT name,value FROM table1  WHERE idfoo1 IN(SELECT _id FROM table3 where id = 1);
SELECT value FROM table2  WHERE idfoo2 IN(SELECT _id_2 FROM table3 where id = 1) AND name='fooname';

そして私は得る:

name  value 
John  2     
Bill  32    
Alex  11   

value
434
234
144

しかし、結合結果が必要です。

name  value value
John  2     434
Bill  32    234
Alex  11    144

したがって、id == id, _id != _id_2,

4

3 に答える 3

3

次のクエリを使用します。

SELECT t1.name,
       t1.value,
       t2.value
FROM table1 t1
INNER JOIN table3 t3 ON t1.idfoo1 = t3._id
INNER JOIN table2 t2 ON t2.idfoo2 = t3._id_2
WHERE t3.id=1 AND t2.name = 'fooname'
于 2012-06-18T12:02:41.247 に答える
1
Select  a.name,a.value,c.value FROM table1  as a inner join table3 as b
on a.idfoo1=b.id and b.id=1 inner join table3 as c
on c.idfoo2=b._id_2 and b.id=1 and c.name='fooname'
于 2012-06-18T11:59:43.297 に答える
-2

私はこれがあなたが必要とするものだと思います-

SELECT t1.name, t1.value, t2.value
FROM table1 t1, table2 t2, table3 t3 
WHERE 
   t1.idfoo1 = t3._id
   AND t2.idfoo2 = t3._id_2
   AND t3.id = 1
   AND t2.name='fooname';
于 2012-06-18T12:00:59.877 に答える