Intereting Posts

Как я могу запросить использование внешнего ключа в 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 вместо этого, каков наилучший способ сделать это?

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

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

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

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

 $row['value']; 

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

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

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

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

Вы не присоединяетесь сюда:

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