显示SQL数据为1个匹配

问题描述:

我希望我能解释这清楚: 我有两个表具有以下结构:显示SQL数据为1个匹配

TABLE A{id, source, url} 
TABLE A2{matchid,matchsource,matchurl,country,lang} 

,我对他们有加盟:

TABLE B{id,source,url,matchid,matchsource,matchurl,country,lang} 

表B是A与A2的连接,其中对于A中的每个记录,在A2中存在具有相同url的匹配记录。现在我想显示的数据如下 如

100 google www.google.com 200 google blog www.gblog.com USA english 
          201 google news www.gnews.com USA english 

代替

100 google www.google.com 200 google blog www.gblog.com USA english 
100 google www.google.com 201 google news www.gnews.com USA english 

其中有数百个匹配的地区经济共同体。

这可能吗?因为我需要显示表A中的每条记录的第一个匹配的记录A

+1

请发布您的查询,或者至少更新示例输出以包含列标题 – 2010-08-15 04:50:56

+0

您想要什么是可能的,但是像这样的演示文稿通常不在数据库中处理 – 2010-08-15 04:53:34

你不能在SQL中这样做。明智的是。

这是一个分组应该在演示文稿/客户端中捕获的前3列。

我建议限制您仅使用SQL来检索数据,并将该数据的呈现留给您的应用程序。

我不怀疑,你将能够使用的东西像union allfetch first实现原始SQL这种效果(让你把一个部分的第一行不同),但它会放不必要的压力在你的数据库上,并认真加一些SQL

换句话说,提取数据,按你的“而不是”位,只是使用表现层(数据库客户端代码),只显示前三个栏时,可以:

  • 它的第一行;或者
  • 该URL与上一行不同。

我想这可能会有某种方式,但我很肯定你不会想要那样的。猜你想要这样做的性能优化?它不会让它变得更好,我只是用你已经找到的方式。