我有一个表'位置'列:
id | session_id | keyword_id |位置
及其中的一些行:
作为查询的结果,我需要一个这样的表:
id | keyword_id | position1 |情况2
其中'position1'是一个值为session_id = 1的列,'position2'是一个值为session_id = 2的列。
结果集应包含10条记录。
抱歉我的英语不好。
数据检查:
id | session_id | keyword_id | position
1 | 1 | 1 | 2
2 | 1 | 2 | 3
3 | 1 | 3 | 0
4 | 1 | 4 | 18
5 | 2 | 5 | 9
6 | 2 | 1 | 0
7 | 2 | 2 | 14
8 | 2 | 3 | 2
9 | 2 | 4 | 8
10 | 2 | 5 | 19
答案 0 :(得分:4)
假设您希望在两个会话中组合具有相同ID的位置,那么以下查询应该是技巧:
SELECT T1.keyword_id
, T1.position as Position1
, T2.position as Position2
FROM positions T1
INNER JOIN positions T2
ON T1.keyword_id = T2.keyword_id -- this will match positions by [keyword_id]
AND T1.session_id = 1
AND T2.session_id = 2