mysql-查询三个表
我有一个包含三个表的关系数据库。第一个包含与第二个相关的id。第二个包含与第三个相关的id。第三个包含我想要的结果 单次查询是否可以在第一个表中查询一个id,该id给出了第三个表中与之相关的所有结果 对不起,我是mySQL新手 试试这个mysql-查询三个表,mysql,database,join,relational,Mysql,Database,Join,Relational,我有一个包含三个表的关系数据库。第一个包含与第二个相关的id。第二个包含与第三个相关的id。第三个包含我想要的结果 单次查询是否可以在第一个表中查询一个id,该id给出了第三个表中与之相关的所有结果 对不起,我是mySQL新手 试试这个 select * from table1 t1 join table2 t2 on t1.t2ref = t2.id join table3 t3 on t2.t3ref = t3.id 添加where子句以搜索表1中的某些行 where t1.field
select * from table1 t1
join table2 t2 on t1.t2ref = t2.id
join table3 t3 on t2.t3ref = t3.id
添加where子句以搜索表1中的某些行
where t1.field = 'value'
使用该命令将表相互链接
另外,我推荐基思·布朗。你想做一个。关于这一点和做这件事的方法有很多。是的
SELECT t3.*
FROM t1, t2, t3
WHERE t1.id = t2.id
AND t2.otherid = t3.id
AND t1.id = XXXX
您要使用联接:
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'
如果你给出一个表格结构,我们可以给你更具体的答案。谢谢你。。。我试过了,效果非常好。。。我还尝试了Peter Lindqvist的方法(使用连接)。我听说JOIN的很贵。您的解决方案在0.0004秒时得出,约为0.0005秒。但目前我几乎没有任何数据。哪一种可能更有效?mysql查询优化器也会将此查询转换为Join查询。我认为您所经历的差异实际上并不显著。如果查询速度较慢,则需要检查索引结构。连接3个表,并且正确的索引通常不会变慢。