跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

请教两张表查询结果有重复的怎么办?

A表id title 1  123 2  456 3  789....

B表id name 1  987 2  654 3  321....

SQL代码为select A表. * , B表. * from A表 A, B表 B where A.id in (1,2,3)查询结果有重复数,怎么弄才不显示重复数??

回复讨论(解决方案)你没有关联两表,有重复是必然的这样?

select A表. * , B表. * from A表 A, B表 B where A.id=B.id A.id in (1,2,3)更正select A表. * , B表. * from A表 A, B表 B where A.id=B.id and A.id in (1,2,3)更正select A表. * , B表. * from A表 A, B表 B where A.id=B.id and A.id in (1,2,3)但是两表的ID是不一样的但是两表的ID是不一样的既然两个表没有任何联系,你把他们硬老在一起做什么?乔太守?

本帖最后由 xuzuning 于 2013-04-07 18:57:31 编辑引用 4 楼 u010184133 的回复:但是两表的ID是不一样的既然两个表没有任何联系,你把他们硬老在一起做什么?乔太守?

字段没有关联,都是信息有关联的,只能用foreach 吗?

建议贴出表结果、测试数据和期望结果,并简单描述一下业务逻辑。

整个情况是这样的:

A表结构id name   info 1  栏目一  (存储样式为a:{s:6:"picid";s:2:"74";s:9:"text";s:1:"存储内容区";}) 2  栏目二  (存储样式为a:{s:6:"picid";s:2:"75";s:9:"text";s:1:"存储内容区";}) B表结构id url 74 图片路径首先通过查询获取到了A表info中picid的id号为74,75的数组

输出样式为:

Array ([0] => 74[1] => 75)然后在查询B表id为74,75的数据然后如何关联输出这2张表的内容呢?

输出结果如何为:

Array ([0] => Array ([id] => 1[name] => 栏目一[url] => 图片路径[info] => info中text的内容)[1] => Array ([id] => 2[name] => 栏目一[url] => 图片路径[info] => info中text的内容)....

取出 info 中的 text 的内容的表达式substring_index(substring_index(substr(info, locate('"text"', info)), '"', 4), '"', -1) as info两表的关联条件B表.id = substring_index(substring_index(substr(info, locate('"picid"', info)), '"', 4), '"', -1)即然有重复,其实用Group by 分组一下,可以间接的去重复取出 info 中的 text 的内容的表达式substring_index(substring_index(substr(info, locate('"text"', info)), '"', 4), '"', -1) as info两表的关联条件B表.id = substring_index(substring_index(substr(info, l……

想请教下其中的4是指什么?

相关文章