我有一个包含三个表的关系数据库。第一个包含与第二个相关的id。第二个包含与第三个相关的id。第三部分包含我追求的结果。
是否可以使用单个查询来查询第一个表中的id,该表给出了与第三个表相关的所有结果?
抱歉,我是mySQL的新手。
答案 0 :(得分:9)
试试这个
select * from table1 t1
join table2 t2 on t1.t2ref = t2.id
join table3 t3 on t2.t3ref = t3.id
添加where子句以搜索table1中的某些行
where t1.field = 'value'
答案 1 :(得分:4)
是
SELECT t3.*
FROM t1, t2, t3
WHERE t1.id = t2.id
AND t2.otherid = t3.id
AND t1.id = XXXX
答案 2 :(得分:3)
您想使用联接:
SELECT `t3`.`id`
FROM `table3` `t3`
LEFT JOIN `table2` `t2`
ON `t3`.`foreign_id` = `t2`.`id`
LEFT JOIN `table1` `t1`
ON `t2`.`foreign_id` = `t1`.`id`
WHERE `t1`.`id` = 'some_id'
答案 3 :(得分:2)
使用JOIN命令将表格链接到另一个。
另外我推荐Keith Brown的this tutorial。
答案 4 :(得分:0)
您想要 join 。有很多关于此事的tutorials和various ways这样做。