Mysql использовать другую таблицу для перевода значения

0

пользователь таблицы

+-----+-------+----------+------------+
| id  |  name |  gender  |   computer |
+-----+-------+----------+------------+
| 1   |  ben  |     1    |       3    |
+-----+-------+----------+------------+

столовый перевод

+-----+--------+
| id  |  trans |
+-----+--------+
| 1   |   boy  |
| 2   |   girl |
| 3   |   pc   |
| 4   |   mac  |
+-----+--------+

конечный результат

+-----+-------+----------+----------+
| id  |  name |  gender  | computer |
+-----+-------+----------+----------+
|  1  |  ben  |  boy     | pc       |
+-----+-------+----------+----------+

У меня есть 2 таблицы, одна - данные пользователя, другая - перевод.

Я хочу использовать таблицу переводов для перевода гендерных и компьютерных значений пользователей, кто знает, как это достичь?

Теги:

2 ответа

1
Лучший ответ

Используйте JOIN.

запрос

 select 
   t1.'id',
   t1.'name',
   t2.'trans' as 'gender',
   t3.'trans' as 'computer'
from 'user' t1
join 'translate' t2
on t1.'gender' = t2.'id'
join 'translate' t3
on t1.'computer' = t3.'id';
1

То, как вы это представили, это не проблема перевода (в смысле языка), а проблема стандартного раздела базы данных. Более стандартным решением было бы определить ваши сущности каждый в своих собственных таблицах:

пользователь

+-----+--------+------------+--------------+
| id  |  name  |  genderId  |  computerId  |
+-----+--------+------------+--------------+
| 1   |  ben   |     1      |       1      |
+-----+--------+------------+--------------+

Пол

+-----+--------+
| id  |  name  |
+-----+--------+
| 1   |  boy   |
+-----+--------+
| 2   |  girl  |
+-----+--------+

компьютер

+-----+--------+
| id  |  name  |
+-----+--------+
| 1   |  pc    |
+-----+--------+
| 2   |  mac   |
+-----+--------+

... и затем ваш запрос гласит:

SELECT * 
FROM user
INNER JOIN gender ON user.genderId = gender.id
INNER JOIN computer ON user.computerId = computer.id

Ещё вопросы

Сообщество Overcoder
Наверх
Меню