我在游戏中使用 SQL 编写了这三个表:
user_stats 与主键 ID
| userid | kills | deaths |
|--------|-------|--------|
| 10 | 5 | 4 |
user_items(用户购买的商品),具有常规整数主键 id - 当用户购买新商品时,会添加一行
| id | userid | itemid |
|----|--------|--------|
| 1 | 10 | 1 |
| 2 | 10 | 2 |
| 3 | 10 | 3 |
user_details(用户已装备的元素),带主键userid
| userid | item1 | item2 |
|--------|-------|-------|
| 10 | 1 | 3 |
我只想处理一张表,但我需要用户启动时的所有信息。我想将三个表合并为一个,但 user_items 对于 1 个用户有多行,因为您可以购买多个项目。作为一个对 SQL 完全陌生的人,我该怎么做?
最佳答案
对所有三个表进行连接
并获取您想要的特定数据,如下所示
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
由于所有表都有一个公共(public)列userid
,您也可以使用NATURAL JOIN
select *
from user_stats
natural join user_item
natural join user_details
关于mysql - 合并三个表只处理一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24352181/