Подтвердить что ты не робот

Как я могу запросить использование внешнего ключа в MySQL?

Сейчас у меня небольшая база данных с двумя таблицами, которые выглядят примерно так:

    users table
    ====================
    id  name   status_id
    1   Bobby  3
    2   James  2

и

    statuses table
    =============
    id  value
    1   Waiting
    2   Approved
    3   Other

status_id устанавливается как ограничение внешнего ключа для id из таблицы статусов. Мой запрос выглядит примерно так:

SELECT *
FROM `users`
WHERE `status_id` = 2";

Когда я показываю $row['status_id'], он выводит 2, но я бы хотел, чтобы он отображался как Approved вместо этого, что является лучшим способом для этого?

4b9b3361

Ответ 1

SELECT u.*, s.*
FROM users u
    inner join statuses s on u.status_id = s.id
WHERE u.status_id = 2

Ответ 2

Что вам нужно, это

SELECT *
FROM `users`
JOIN statuses ON statuses.id = users.status_id
WHERE `status_id` = 2";

а затем вы можете обратиться к

$row['value'];

Ответ 3

Самый простой способ - через объединения:

select *
from User u join Status s on u.status_id = s.id;

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

Ответ 4

Таблица ваших пользователей не имеет одобренных в ней значений. Он находится в таблице ваших статусов. Когда вы запрашиваете status_id, вы получите это значение обратно из этого запроса. Я думаю, вы должны сделать JOIN ON status_id, чтобы сделать эту работу. Или выполните второй запрос.

Ответ 5

Вы не JOIN здесь:

SELECT *
FROM Users U, Statuses S
WHERE S.id=U.status_ID
AND status_id = 2;