我有一个包含少量表格的简单数据库(以及一些示例列):
游戏(gm_id,game_name,company,desc)
plateform_master (p_id,plateform_name)
plateform_details (pd_id,gm_id,p_id, release_date )
有没有办法创建单个SQL查询,它将返回具有多个平台的所有游戏细节
答案 0 :(得分:0)
你的问题不是很清楚。您自己指的是posts
和categories
?
这是一个基于我理解的示例:从plateform_master
中选择所有记录,并为每个记录从plateform_details
获取详细信息。您可以取消注释where
部分,以获取一条包含其详细信息的主记录。 (" - "表示SQL中的注释)
select
pm.p_id
pd.*
from plateform_master as pm
inner join plateform_details as pd on pm.p_id = pd.p_id
-- where pm.p_id = 123
抱歉,我的不好,应该是left join
,而不是inner join
!
根据您更改的要求尝试此操作(未经测试):选择所有游戏,并为每个游戏获取它的plateform_details和plateform_master通讯员值:
select
gm.gm_id,
gm.game_name,
gm.company,
pd.release_date,
pm.plateform_name
from game as gm
left join plateform_details as pd on pd.gm_id = gm.gm_id
left join plateform_master as pm on (pm.p_id = pd.p_id AND pd.gm_id = gm.gm_id)
-- WHERE CONDITIONS
;
感谢投票。我还想告诉你,你这里没有多对多的关系。你只有一对多。多对多意味着在另外两个之间使用中间表。