SQL从多个表中选择和匹配

时间:2012-08-14 09:58:04

标签: sql

虽然我在互联网上查看了不同的示例,但我无法从多个表中选择数据。我有2张桌子。

     1st  has 'logUID', 'groupUID' field.

另一个

    2nd has 'logUID' , 'User ID' , 'LogEntry' , 'LogTypeUID'

我想要完成的是获取LogUID彼此匹配的日志条目并返回groupUID字段,因此我知道日志所针对的组。当我尝试选择或加入时,我似乎正在重复一个logUID字段。

SELECT TOP 10000 [log].[dbo].[Logs].[LogUID], [log].[dbo].[LogGroups].[LogUID],     [Weblog].[dbo].[LogGroups].[GroupUID] 

FROM [log].[dbo].[LogGroups], [log].[dbo].[Logs] INNER JOIN [log].[dbo].[LogGroups] as LG
ON [log].[dbo].[Logs].[LogUID] = LG.LogUID ;

任何帮助。

3 个答案:

答案 0 :(得分:1)

删除额外的FROM [log].[dbo].[LogGroups],

答案 1 :(得分:0)

你有[LogGroups]表两次......

  • FROM table1, table2表示table1 CROSS JOIN table2


所以,只需将您的代码更改为以下内容......

SELECT TOP 10000
  [Logs].[LogUID],
  [LogGroups].[LogUID],
  [LogGroups].[GroupUID]
FROM
  [log].[dbo].[Logs]
INNER JOIN
  [log].[dbo].[LogGroups]
    ON [Logs].[LogUID] = [LogGroups].LogUID ; 

答案 2 :(得分:-1)

首先,您需要在已创建的表之间创建关系。创建关系后,您可以使用两列创建关键关系。因此,无论第一个表的logUID字段中的数据是什么,相同的数据都会进入第二个表的logUID字段。这样可以帮助您从两个表中获取数据。

希望这会有所帮助。