1

マッピングテーブルがありますtableA

key   value
----------- 
1     "John"
2     "George"
3     "Kate"
4     "loves"
5     "hates"

tableBのキーに基づく行を含む別の行tableA

col1   col2   col3
------------------
1      5      2
2      4      3
3      4      1

table B行を返すが、適切な値に置き換えられる選択クエリを作成したいと考えています。

たとえば、出力は次のようにする必要があります。

John   | hates | George
George | loves | Kate
Kate   | loves | John

ありがとうございました。

4

2 に答える 2

2
SELECT A1.value, A2.value, A3.value 
FROM tableB 
JOIN tableA as A1 ON tableB.col1 = A1.key 
JOIN tableA as A2 ON tableB.col2 = A2.key 
JOIN tableA as A3 ON tableB.col3 = A3.key;
于 2013-01-30T16:38:19.327 に答える
1

最後の 2 つの項目 'loves' と 'hates' は、他の 3 つとは異なるタイプのデータを表すため、おそらく別のテーブルに配置する必要があります。

ここにテーブルがあります:

ユーザー:

id  name
----------
 1  John
 2  Edward
 3  Kate

感情:

id  type
----------
 1  love
 2  hate

感情_ユーザー:

id  user1_id  feeling_id  user2_id
-----------------------------------
 1      1         2          2
 2      2         1          3
 3      3         1          1

クエリは次のとおりです。

select `Ua`.`name`, `F`.`type`, `Ub`.`name` from `feelings_users` as `X`
left join `users` as `Ua` on `X`.`user1_id` = `Ua`.`id`
left join `feelings` as `F` on `X`.`feeling_id` = `F`.`id`
left join `users` as `Ub` on `X`.`user2_id` = `Ub`.`id`

そしてそれは出力します:

name    type  name
--------------------
John    hate  Edward
Edward  love  Kate
Kate    love  John
于 2013-01-30T17:01:05.880 に答える