sql 一张表的字段存放的另一张表的ID,怎么查询出另一张表的所有数据?
比如这样:Route表字段ST1....STN存的workStation 表中的ID。
SELECT Route.name,workStation.normal,f2.normal,f3.normal,f4.normal,f5.normal,f6.normal,f7.normal
FROM Route
join workStation on Route.ST1 = workStation.id
join workStation f2 on Route.ST2 = f2.id
join workStation f3 on Route.ST3 = f3.id
join workStation f4 on Route.ST4 = f4.id
join workStation f5 on Route.ST5 = f5.id
join workStation f6 on Route.ST6 = f6.id
join workStation f7 on Route.ST7 = f7.id;
还有其它方法吗? workStation存放的是单个工站的信息,route将几十到上百个工站连接起来。所有有了这个结构,不知道还有其它结构比这个更好的吗?,这个结构就是不好查询。 还是分多少查询好一些,还是一次查询多次join好呢? 都是同一张表为什么要join这么多次?没看明白~
SELECT Route.name,f1.normal,f1.normal,f1.normal,f1.normal,f1.normal,f1.normal,f1.normal
FROM Route
join workStation f1 on Route.ST1 = workStation.idand Route.ST2 = f1.id and Route.ST3 = f1.id; SELECT t1.name,t2.normal
FROM Route t1
join workStation t2 on t1.ST1 = t2.id or t1.ST2 = t2.id or t1.ST3 = t2.id or t1.ST4 = t2.id or t1.ST5 = t2.id or t1.ST6 = t2.id ort1.ST7 = t2.id
这样? 你这想法倒是挺奇怪的 根据你的数据库类型,可以尝试下Route表先进行列转行,然后再join 额,能看看表结构吗,你这个实例看着好怪哦{:301_1008:} Piz.liu 发表于 2022-7-27 15:51
SELECT t1.name,t2.normal
FROM Route t1
join workStation t2 on t1.ST1 = t ...
这种如果 要取t2中的数据 怕就不行了 Atlantis908 发表于 2022-7-27 15:35
都是同一张表为什么要join这么多次?没看明白~
SELECT Route.name,f1.normal,f1.normal,f1.normal,f1.no ...
sqlite 好像不行,查询不了。 luby 发表于 2022-7-27 16:55
这种如果 要取t2中的数据 怕就不行了
这有啥不行 只要有关联就能取
页:
[1]
2