我想要查询三个表:
MODS的
mod_id
author
url
name
代码
tag_id
tag_name
tag_url
tags_to_mods (mods& tags有多对多关系)
ttm_id
tag_id
mod_id
基本上我正在尝试找到与给定mod_id相关的tag_name和tag_id。
我该怎么做呢?我是SQL的新手,还没有尝试正确查询这样的关系数据。我认为有一种比我选择的更好的方法。
我对此的尝试(伪(ish)代码):
x = SELECT tag_id FROM tags_to_mods WHERE mod_id = $mod_id
SELECT tag_name, tag_id FROM tags WHERE tag_id = x
它得到了理想的结果,但我必须两次查询我的表...
答案 0 :(得分:1)
试试这个(其中$ mod_id是Mod的id):
select tg.tag_name, tg.tag_id
from Tags tg
inner join tags_to_mods tm
on(tg.tag_id = tm.tag_id)
where tm.mod_id = $mod_id;
答案 1 :(得分:0)
SELECT m.author, m.name, m.url, t.tag_id, t.tag_name
FROM Mods AS m
INNER JOIN tags_to_mods AS tm ON tm.mod_id = m.mod_id
INNER JOIN Tags AS t ON t.tag_id = tm.tag_id
WHERE m.mod_id = $mod_id