Sql 内部连接语句似乎不起作用

Sql 内部连接语句似乎不起作用,sql,Sql,我有一个简单的SQL语句,它似乎不起作用。我想在表match(“id”)上显示match\u团队的表(“match\u id”) 因此,我编写了以下内部连接语句 SELECT * FROM match_team INNER JOIN match ON match_team.match_id = match.id 然而,这会抛出一个错误。您对这里可能出现的问题有什么想法吗?您可以使用双引号来避免关键字 SELECT * FROM match_team INNER JOIN "match" ON

我有一个简单的SQL语句,它似乎不起作用。我想在表match(“id”)上显示match\u团队的表(“match\u id”)

因此,我编写了以下内部连接语句

 SELECT * FROM match_team INNER JOIN match ON match_team.match_id = match.id

然而,这会抛出一个错误。您对这里可能出现的问题有什么想法吗?

您可以使用双引号来避免关键字

SELECT * FROM match_team INNER JOIN "match" ON match_team.match_id = "match".id

避免冲突的最佳方法是使用具有数据库名称的表。假设您的数据库是“主数据库”


问题是,
match
是RDBMS中的保留字,您没有指定RDBMS,它确实依赖于它,但请尝试以下方法之一:

SELECT * FROM match_team INNER JOIN `match` ON match_team.match_id = `match`.id
SELECT * FROM match_team INNER JOIN "match" ON match_team.match_id = "match".id

我不知道有哪种SQL语言使用另一个字符作为保留字

首先检查您使用的是您的数据库,而不是“主”数据库

使用Ctrl+u访问可用数据库dropdownList或尝试以下操作:

使用[您的数据库名称] 去

在match\u team.match\u id=match.id上选择*从match\u team内部加入match 为了避免表之间的冲突,请使用别名。。。例如,见下文:

使用[您的数据库名称] 去 在A.match\u id=B.id上选择*从match\u团队A内部加入match B


或者开始使用类似以下模式的寻址:dbo.match\u team.match\u id=dbo.match.id

match在ANSI SQL中是一个保留字,必须将其分隔为
“match”
。使用
数据库名。match
@SatishSam,这根本没有任何改进…您使用的数据库管理系统可能存在重复?确切的错误信息是什么?
SELECT * 
FROM match_team a
INNER JOIN [match] b ON a.match_id = b.id
SELECT * FROM match_team INNER JOIN `match` ON match_team.match_id = `match`.id
SELECT * FROM match_team INNER JOIN "match" ON match_team.match_id = "match".id