MySQL内部加入失败

时间:2012-02-15 17:25:58

标签: mysql sql join inner-join

ID  W1  W2
1   a   q
2   a   w
3   b   r
4   c   t

我想要获得的是,使用单个SQL语句,使用W2查询表,并在W1相同的情况下获取W2。

即:

查询表格,询问'q'。 q对于它的w1是'a'所以我想带来w2的行,它们在w1中也有'a'。

我怎样才能做到这一点?我认为这是内部联系,但我失败了很多时间。

谢谢

3 个答案:

答案 0 :(得分:4)

对于像这样简单的东西,嵌套查询可能更容易(并且如果你从连接中得到意外的乘法结果,可能会更快或更快):

SELECT * FROM TableName WHERE W1 IN (SELECT W1 FROM TableName WHERE W2='q')

你的确可以通过内部联接来做到这一点。

隐式:

SELECT * FROM TableName t1, TableName t2
WHERE t1.W1=t2.W1
AND t1.W2='q'

明确地说:

SELECT * FROM TableName t1
INNER JOIN TableName t2
ON t1.W1=t2.W1
WHERE t1.W2='q'

答案 1 :(得分:1)

SELECT t2.W2
    FROM YourTable t1
        INNER JOIN YourTable t2
            ON t1.W1 = t2.W1
    WHERE t1.W2 = 'q'

答案 2 :(得分:1)

SELECT ID,
CASE
    WHEN W1=W2 THEN W1
    ELSE W2
END CASE
FROM Table