我在游戏的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的陌生人,我该怎么做呢?
答案 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