Sql 内部连接语句似乎不起作用
我有一个简单的SQL语句,它似乎不起作用。我想在表match(“id”)上显示match\u团队的表(“match\u id”) 因此,我编写了以下内部连接语句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
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.idmatch在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