SQLite连接选择来自同一个表的两列

时间:2012-12-25 19:12:52

标签: sqlite

我有一个表'位置'列:

  

id | session_id | keyword_id |位置

及其中的一些行:

  • session_id = 1
  • 的10行
  • 和10,session_id = 2。

作为查询的结果,我需要一个这样的表:

  

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

1 个答案:

答案 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
相关问题