将三个表组合起来只处理一个表

时间:2014-06-22 14:21:07

标签: mysql sql

我在游戏的SQL中有这三个表:

带有主键ID的

user_stats

| userid | kills | deaths |
|--------|-------|--------|
|   10   |   5   |   4    |
带有常规整数主键ID的

user_items (用户已购买的商品) - 当用户购买新商品时,会添加一行

| id | userid | itemid |
|----|--------|--------|
|  1 |   10   |   1    | 
|  2 |   10   |   2    | 
|  3 |   10   |   3    | 
使用主键用户标识

user_details (用户配备的项目)

| userid | item1 | item2 |
|--------|-------|-------|
|   10   |   1   |   3   |

我只想处理一个表,但是当用户启动时我需要所有信息。我想将这三个表合并为一个,但user_items为1个用户提供了多行,因为您可以购买多个项目。作为SQL的陌生人,我该怎么做呢?

1 个答案:

答案 0 :(得分:2)

在所有三个表上执行join并获取您想要的特定数据,如下所示

select us.*
from user_stats us
inner join user_item ui on us.userid = ui.userid
inner join user_details ud on us.userid = ud.userid

由于所有表格都有一个共同的列userid,您也可以使用NATURAL JOIN

select *
from user_stats
natural join user_item
natural join user_details