пользователь таблицы
+-----+-------+----------+------------+
| 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 таблицы, одна - данные пользователя, другая - перевод.
Я хочу использовать таблицу переводов для перевода гендерных и компьютерных значений пользователей, кто знает, как это достичь?
Используйте 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';
То, как вы это представили, это не проблема перевода (в смысле языка), а проблема стандартного раздела базы данных. Более стандартным решением было бы определить ваши сущности каждый в своих собственных таблицах:
пользователь
+-----+--------+------------+--------------+
| 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