在同一个表上交叉检查查询

时间:2014-08-28 15:43:35

标签: sql-server

如何编写查询以显示sample1_id = 3sample2_id = 5Sample1_id = 5sample2_id =3的记录。

这意味着它应该检查sample1_id的行,并查看记录为5的记录为5的记录为3的sample2_id,并检查sample1_id是否有记录5行,sample2_id,记录为3。

我希望我的问题有意义

enter image description here

1 个答案:

答案 0 :(得分:0)

按照你提供的内容,模拟语句看起来像这样:

SELECT *
FROM MyTable
WHERE (sample1_id = 3 AND sample2_id = 5)
   OR (sample1_id = 5 AND sample2_id = 3);

如果这不正确,请提供一些样本数据和您想要的结果样本。

在回答有关使用变量的问题时添加了以下内容:

DECLARE @intId1 int,
        @intId2 int;

SET @intId1 = 3;
SET @intId2 = 5;

BEGIN;
    SELECT *
    FROM MyTable
    WHERE (sample1_id = @intId1 AND sample2_id = @intId2)
       OR (sample1_id = @intId2 AND sample2_id = @intId1);
END;