Объединить все данные строки на основе идентификатора из более чем 2 таблиц в базе данных - PullRequest
0 голосов
/ 25 октября 2018

table_1

id | user_id | morning
1  |  1      |  apple

table_2

id | user_id | afternoon
1  |  1      |  orange

table_3

id | user_id | evening
1  |  1      |  pineapple

Эти таблицы являются лишь примерами, и я хотел бы присоединиться к ним, чтобы получить json объект типа:

{'user_id': 1, 'morning': 'apple', 'afternoon': 'orange', 'evening': 'pineapple'}. 

Запрос:

database.select('*').
         from('table_1').
         join('table_2', 'user_id', 'user_id').
         join('table_3', 'user_id', 'user_id').
then(function() {});

Я использую knexjs для узла expressjs сервер, и я предполагаю, что это способ объединения нескольких таблиц.Я никогда не использовал join раньше, поэтому я не уверен, что это работает.К сожалению, я получаю эту ошибку.

ссылка на столбец 'user_id' является неоднозначной

Пожалуйста, помогите мне понять ошибку и что пошло не так.Спасибо

1 Ответ

0 голосов
/ 25 октября 2018

Чтобы определить ссылку на столбец 'user_id', это неоднозначная ошибка,

app.get('/get_all_data', function(req, res) {
  database.from('table_1').innerJoin('table_2', 'table_1.user_id', 'table_2.user_id').innerJoin('table_3', 'participants.athlete_id', 'table_3.athlete_id').then(function(data) {
    res.send(data);
  });
}); 

Поскольку я использую одно и то же имя столбца в нескольких таблицах (что не является хорошим примером), мне нужно добавить таблицуимя перед user_id как этот 'table_1.user_id'.

...