Получить значение ключа foregin, а не идентификатор SQL - PullRequest
0 голосов
/ 02 января 2019

ребята php новичок здесь:)

я знаю, что мой вопрос задавался много, но я прочитал более 20 ответов, и большинство из них не работают с моим запросом, и мой запрос прост, но я не знаю, почему не работал со мной :(

У меня есть 2 ТАБЛИЦЫ:

1- ПОЛЬЗОВАТЕЛИ : (идентификатор, имя пользователя, страна, статус) первичный ключ - идентификатор , а ключ доступа страна

2- страны (идентификатор страны, код страны, код страны): идентификатор страны

когда я вставляю данные в таблицу стран и вставляю данные в пользователей, все УДОБНО и ПОДКЛЮЧЕНО друг к другу!

но когда я пришел запросить часть, вот моя проблема: все здесь работает! но выходное значение страны - ID, и я хочу, чтобы оно было его именем, потому что country_en имеет значения имени

$sql = "SELECT * FROM `users` 
        WHERE `users`.`status` = 'active' 
        ORDER BY RAND() LIMIT 10 ";

после того, как я прочитал ответы на многие вопросы, я попытался добавить UNION, LEFT JOIN и т. Д., Но все тот же, и я знаю проблему из своего, и я буду учиться на своих ошибках. последний запрос, который я пытался решить эту проблему

$sql = "SELECT * 
        FROM `users` WHERE `users`.`status` = 'active' 
        INNER JOIN `countries` ON `users`.`country` = `countries`.`country_en` 
        ORDER BY RAND() LIMIT 10 ";

Не могли бы вы, ребята, помочь мне с этим :(

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Спасибо каждому из вас за попытку помочь мне,

Я хотел бы поделиться со всеми вами ответом на мой вопрос с наилучшим способом получения данных ключа foregin, а не только идентификатора,Использование метода " JOIN "

minitauros говорит: JOIN работает , если таблицы имеют разныеимена столбцов .НИЖЕ ЗАКЛЮЧИТЕЛЬНЫЙ ЗАПРОС

SELECT `users`.`id`, `users`.`username`, `users`.`country`, `users`.`status`, `countries`.`country_id`, `countries`.`country_en` FROM `users` JOIN `countries` ON `users`.`id` = `countries`.`country_id` WHERE `users`.`id` = 1

В ON части запроса вы сообщаете запросу , какой столбец в первой таблице соответствует столбцу which во второй таблице .

кредит minitauros

Используемые операторы SELECTесть другое количество столбцов? ?

0 голосов
/ 02 января 2019
$sql = "SELECT users.username,users.country,user.status,countries.country_en 
    FROM users 
    INNER JOIN countries ON users.country = countries.country_id 
    WHERE users.status = 'active' 
    ORDER BY RAND() LIMIT 10 ";

Вы, однако, открыты для инъекции SQL, поэтому посмотрите на подготовленные операторы

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