0

我有两个如下表。

表 val1

e_id  name   val  

1     A1     Abc         
2     A2     Abd        
3     A3     AbE        
4     A4     AEd   
5     A5     AEd   
6     A6     Bdc   

表 val2

e_id   e_desc   t_id   

1       desc1    1
2       desc1    1
1       desc1    2
3       desc1    1
5       desc1    1
2       desc1    2
4       desc1    2
5       desc1    2
2       desc1    3
4       desc1    1
6       desc1    1
3       desc1    2
6       desc1    2
3       desc1    2
5       desc1    3

我只想通过 e_id 映射从表 Val1 中获取值,其中表 Val2 上的 e_id 为表 Val2 t_id = 1

我正在使用此查询,但它正在获取所有数据。我该如何解决这个问题。这是我使用的sql代码,如下所示

SELECT 
    a.*,
    b.e_desc 
FROM 
    val1 AS a, val2 AS b 
WHERE 
    b.e_id = a.e_id 
AND EXISTS (SELECT 
                c.e_id 
            FROM val2 AS c 
            WHERE 
                c.e_id = a.e_id 
            AND c.t_id='1' 
           ) 
4

2 回答 2

2

刚刚怎么样

SELECT  a.*,
        b.e_desc 
FROM    val1 AS a,
        val2 AS b 
WHERE   b.e_id = a.e_id 
AND     b.t_id='1' 

甚至

SELECT  a.*,
        b.e_desc 
FROM    val1 AS a INNER JOIN
        val2 AS b ON b.e_id = a.e_id 
WHERE   b.t_id='1'
于 2012-09-05T04:55:49.940 回答
1

它可以通过JOIN两个条件的两个表来解决。试试这个,

SELECT  a.*, b.e_desc
FROM    tableA a
        INNER JOIN tableB b 
           ON a.e_id = b.e_id  AND 
              a.e_id = b.t_id
WHERE b.t_id = 1
于 2012-09-05T04:55:35.817 回答