[英]select items where id is contained in another table field
我在 sqlite3 中有以下数据库架构:
基本上,一个成员有多个字符。 一个角色在一个活动中玩耍(具有模式类型)并具有该活动的结果(character_activity_stats)
我 select 特定角色和模式的所有统计信息(活动 / character_activity_stats),如下所示:
SELECT
*,
activity.mode as activity_mode,
character_activity_stats.id as character_activity_stats_index
FROM
character_activity_stats
INNER JOIN
activity ON character_activity_stats.activity = activity.id,
modes ON modes.activity = activity.id
WHERE
modes.mode = 5 AND
character_activity_stats.character = 1
这很好用。
但是,现在我想 select 同一组数据,但是按成员(基本上将所有字符的结果组合为一个成员)。
但是,我什至不确定如何处理这个问题。
基本上,我需要检索所有 character_activity_stats 其中 character_activity_stats.character 是指定成员的字符(按 id)。 有什么建议或指示吗? (我对 sql 很陌生)。
加入右键上的这 3 个表:
select *
from character_activity_stats
join character on character_activity_stats.character = character.id
join member on member.id = character.member
where member.id = ?
如果除了 id 限制之外您不需要来自成员的任何数据,那么您可以关闭该连接并执行 character.member =? 反而。
如果您对主键和外键使用相同的名称(即不要将 id 用于主键),则会容易得多。 它还允许您使用自然连接,因此您甚至不需要提供连接条件。 对于约定的主键通常是_id。 您在大多数表格中都有 id 和 _in,所以我不知道那是什么意思。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.