ПРОСТО MySQL Присоединиться с инвентарем - PullRequest
1 голос
/ 17 августа 2010

Я - новичок в SQL, и у меня возникают проблемы с тем, что, как я полагаю, является простым и легким оператором объединения SQL.

У меня есть таблица "инвентарь" и "предметы". Таблица «инвентарь» содержит user_id, item_id и qty. Таблица "items" содержит item_id и item_name.

Я хочу, чтобы пользователь получил список всех предметов инвентаря, перечисленных в таблице «инвентарь», с указанием их user_id, а затем в каждой строке отобразил имя элемента из таблицы «предметы», связанной с item_id, в «инвентарь». таблица ...

Кажется, это должно быть действительно просто, но все мои запросы, похоже, возвращают каждый элемент в таблице "items", а не каждый элемент в таблице "инвентаря". Может ли кто-нибудь дать мне пример SQL-запроса, который я должен использовать?

Ответы [ 3 ]

1 голос
/ 17 августа 2010
select i.user_id, i.item_id, i.qty, it.item_name
from inventory i
inner join items it on i.item_id = it.item_id
where i.user_id = 42

Обновление:

Если не гарантируется, что в таблице items есть соответствующие записи, вам может потребоваться использовать левое внешнее объединение, например:

select i.user_id, i.item_id, i.qty, it.item_name
from inventory i
left outer join items it on i.item_id = it.item_id
where i.user_id = 42
0 голосов
/ 17 августа 2010
SELECT inventory.*, items.* FROM inventory, items WHERE inventory.user_id='$userid' AND inventory.item_id = items.item_id
0 голосов
/ 17 августа 2010

Вот, попробуйте это:

select inventory.user_id, items.item_name
from inventory
inner join items on inventory.item_id = items.item_id
where inventory.user_id = `$some_user_id`;
...