我有一张表,其中有成对的分数。
喜欢这个
P1 P2 Score Date
John Mark 43 2011-01-01
Sinan Ash 53 2011-02-03
...
John Suzie 34 2011-10-10
Ash Sinan 54 2011-11-11
sinan suzie 42 2011-12-12
...
所以我想要的是获得思南和他的搭档的所有分数。 我想要得到的东西是喜欢的东西:
partner - score
ash 53
ash 54
suzie 42
我正在尝试使用下面的te查询。有没有比
更好的查询方式select * from table WHERE P1 = 'sinan' OR P2 = 'sinan'
效率这么高吗?也许有一种更好的方法来存储数据。 有什么建议吗?
答案 0 :(得分:3)
真正的诀窍是在P1和P2之间交替伙伴。最简单的方法可能是:
SELECT P2 AS partner, Score
FROM table
WHERE P1 = 'sinan'
UNION ALL
SELECT P1 AS partner, Score
FROM table
WHERE P2 = 'sinan'
答案 1 :(得分:0)
以下是使用CASE语句的示例
SELECT CASE WHEN P1 = 'Sinan' THEN P2 ELSE P1 END AS Partner, Score
FROM ScoreTable
WHERE P1 = 'Sinan' OR P2 = 'Sinan'