1

次の2つのテーブルがあります。

ユーザー:

+---------+--------------+
| user_id | skills       |
+---------+--------------+
|       1 | 1,2,3,5,4,14 |
|       2 | 1,2,3        |
|       3 | 3,4,5        |
|       4 | 1,2          |
+---------+--------------+

pスキル:

+-----+--------+------+----------+
| PID | SKILLS | SPLI | status   |
+-----+--------+------+----------+
|   1 | 2,4    |    1 |          |
|   1 | 1      |    1 | required |
+-----+--------+------+----------+

テーブルpskillsのSKILLS列の値を一致させたい。たとえば、クエリがpskillsの最初の行で実行され、ユーザー テーブルと結合された場合、SKILLS 2,4 はユーザー ID 1 のみと一致するため、ユーザー ID 1 が返されます。どうすればこれを簡単に行うことができますか?

4

1 に答える 1

4

複数の値を 1 つの列に格納しないでください。

このようにテーブルを正規化する必要があります

**user**
+---------+--------------+
| user_id | skills       |
+---------+--------------+
|       1 | 1            |
|       1 | 2            |
|       1 | 3            |
|       1 | ...          |
|       2 | 1            |
|       2 | 2            |
|         | ...          |
+---------+--------------+

**pskills**
+-----+--------+------+----------+
| PID | SKILLS | SPLI | status   |
+-----+--------+------+----------+
|   1 | 2      |    1 |          |
|   1 | 4      |    1 |          |
|   1 | 1      |    1 | required |
+-----+--------+------+----------+
于 2013-10-01T09:25:39.823 に答える