3

列のあるテーブル「positions」が1つあります。

id | session_id | keyword_id | ポジション

そしてその中のいくつかの行:

  • session_id=1の10行
  • およびsession_id=2の場合は10。

クエリの結果として、次のようなテーブルが必要になります。

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
4

1 に答える 1

4

2つのセッションから、同じ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
于 2012-12-25T19:15:45.173 に答える