SQL - как получить связанные значения из 2 таблиц - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть таблица, которая основана на идентификаторе пользователя, который содержит избранные изображения пользователя

У меня есть другая таблица, которая содержит имя пользователя и идентификатор пользователя

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

Я совершенно новичок в SQL, поэтому я благодарен за любую помощь

SELECT * 
FROM  `atabl_users` 
WHERE  `name` LIKE  'user to input value' 
LIMIT 0 , 30


SELECT * 
FROM  `atabl_joomgallery_users` 
WHERE  `uid` =17
ORDER BY  `azc6a_joomgallery_users`.`uid` ASC 
LIMIT 0 , 30

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Вы используете JOIN для объединения ваших запросов

SELECT j.* 
FROM  atabl_joomgallery_users j
JOIN atabl_users u ON u.id = j.uuserid
WHERE u.name LIKE ?

Обратите внимание, что LIKE может вернуть нескольких пользователей, поэтому, если вы получите уникальное имя пользователя в качестве входного значения, вы можете изменить выражение where на

WHERE u.name = ? 
0 голосов
/ 22 ноября 2018

Если вам требуется вся информация из двух таблиц, вам требуется идентификатор, который они оба используют совместно, чтобы их можно было связать (объединить) вместе.

На основании предоставленной вами информации, я предполагаючто обе таблицы содержат значение "uid" в качестве идентификатора пользователя.

Таким образом, следует использовать следующий запрос:

"SELECT * FROM atabl_users au INNER JOIN atabl_joomgallery_users aju ON au.uid = aju.uid ГДЕ au.name НРАВИТСЯ? И aju.uid= 17 LIMIT 30 "

Я удалил ORDER BY, так как вам потребуется другой.Нет смысла упорядочивать по uid, если вы указали его как 17.

Чтобы объяснить, мы просим получить всю информацию * из таблицы atable_users, затем мы присваиваем ей сокращенное значение au,чтобы было легче читать позже.Затем мы объединяем этот набор таблиц с другой таблицей на основе двух уникальных значений.Затем мы можем уточнить наш поиск, используя наши значения WHERE, и, наконец, ОГРАНИЧИТЬ набор результатов на 30.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...