MYSQL选择列A或B,如果其中任何一个是= X,则加入A列或B中的另一个非X值

时间:2011-04-03 01:22:14

标签: mysql

我有一个成对距离的项目表。 给定一个Item ID,我想列出Paired ItemID。 然后,我想将此连接到另一个表,其中包含其他匹配项的详细信息。

表A.

    +-------+-----------+----------+
    | ItemA | ItemB     | Distance |
    +-------+-----------+----------+
    |    12 |     33    | 13.0     |
    |    12 |      4    | 14.6     |
    |    43 |     12    | 17.8     |
    |    44 |     12    | 19.6     |
    +-------+-----------+----------+

我最好的猜测是在ItemA或ItemB中选择一个X作为值的行,并且输出列为AS ITEM。

半完成/错误的Mysql:

Select *, (NON X Column Value) AS ITEM FROM TableA WHERE (ItemA = X) OR (ItemB = X) 

我可以稍后将JOIN部分添加到查询中。

由于

2 个答案:

答案 0 :(得分:2)

(NON X Column Value)应该像CASE WHEN ItemA = X THEN ItemB ELSE ItemA END

答案 1 :(得分:1)

SELECT ItemA as Start, ItemB as Destination
FROM   TableA
WHERE  ItemA = X
UNION
SELECT ItemB as Start, ItemA as Destination
WHERE  ItemB = X

如果您有上表,则可以将其与其他表连接以显示更多详细信息。

希望这有帮助