Как выбрать записи из таблицы базы данных, которая должна идентифицировать пользователя (созданный_пользователем, заданным_пользователем) и заменить идентификатор пользователя именами пользователей? - PullRequest
0 голосов
/ 15 декабря 2018

Это таблица задач:

task table in a database

Это таблица пользователей:

user table in a database

Я хочу выбирать задачи пользователя.Я бы дал от backend ("Given_to_user) ID. Но дело в том, что я хочу, чтобы данные SELECTED имели имена пользователей вместо идентификатора Id, который является (create_by_user и Given_to_user).

Таблица SELECTED будет выглядеть следующим образом. Пример:

example data that I need to select

Как добиться того, что я хочу? Или, возможно, я плохо спроектировал свои таблицы, из-за которых трудно выбрать нужные мне данные? :) Таблица задач должназначения идентификаторов, которые являются внешними ключами для пользовательской таблицы. Я пробовал многие мысли, но не смог получить желаемый результат.

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

Вы просто хотите два объединения?

select t.*, uc.username as created_by_username,
       ug.username as given_to_username
from task t left join
     users uc
     on t.created_by_user = uc.id left join
     users ug
     on t.given_to_user = ug.id;

Используется left join в случае, если один из идентификаторов пользователя отсутствует.

0 голосов
/ 16 декабря 2018

Вы плохо спроектировали таблицы.Фактически это обычная практика для хранения идентификаторов, которые ссылаются на столбцы в других таблицах.Вам просто нужно научиться реализовывать объединения:

SELECT 
  task.id, task.title, task.information, user.usename AS created_by, user2.usename AS given_to
FROM 
  (task INNER JOIN user ON task.created_by_user = user.id) 
  INNER JOIN user AS user2 ON task.created_by_user = user2.id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...