Mysql объединить две таблицы несколько раз - PullRequest
0 голосов
/ 22 января 2020

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

gamer_user where u.id  = gamer_rec t2.user_id

, где gamer_user имеет имя_пользователя, а gamer_re c имеет название компании

SELECT t1.company,usc.`name`,ur.id,u.id,t1.user_name,t2.user_name
FROM `game_social` AS usc 
JOIN gamer_rec t2 ON t2.user_id = `usc`.`user_id` 
JOIN gamer_rec t1 ON t1.user_id = `u`.`id` 
JOIN `gamer_user` AS u ON `usc`.`user_id` = `u`.`id`  
JOIN `gamer_user` AS ur ON `ur`.`email` = `usc`.`email`

но я получаю ошибку как

[Err] 1054 - Неизвестный столбец 'u.id' в 'в предложении'

gamer_re c t1 или t2

user_id user_name
1          paul
2          thomas
3          Nancy

gamer_user u или ur

id    user_id  email
1      2       eabce@abce.com
2      1       aabc@abc.com
3      4       dabcd@abcd.com

game_social

id  user_id   email
1    2       aabc@abc.com
2    3       dabcd@abcd.com
3    1       eabce@abce.com
4    6       fabcf@abcf.com

Здесь это вывод .. пожалуйста, найдите t1.user_id и t2.user_id --- но мне нужно t2.user_id = ur.id and t1.user_id= u.id такие же

enter image description here

1 Ответ

2 голосов
/ 22 января 2020

Вам необходимо присоединиться к столу, прежде чем вы сможете его использовать. Так что поменяйте местами соединения:


SELECT t1.company, t1.user_name, 
       t2.user_name,
       usc.`name`,
       ur.id, 
       u.id

FROM game_social usc 

JOIN gamer_user u ON `usc`.`user_id` = `u`.`id`
JOIN gamer_user ur ON `ur`.`email` = `usc`.`email`

JOIN gamer_rec t1 ON t1.user_id = `u`.`id` 
JOIN gamer_rec t2 ON t2.user_id = `usc`.`user_id` 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...