我正在尝试记录一些SQL,并希望获得正确的术语。如果你像这样写SQL;
select child.ID, parent.ID
from hierarchy child
inner join hierarchy parent
on child.parentId = parent.ID
然后你有一个实际的表('hierarchy'),你给出了两个名字('parent'和'child')我的问题是你如何引用一个带有名字的表的逻辑实体。
你会在这里写下这个名字的空白吗?
“此查询使用一个表格(层次结构),但有两个 _ (子级和父级)”
[edit]在问题中留下了以前的草稿。现在纠正了。
答案 0 :(得分:5)
我相信这叫做SELF JOIN。 A和B(或“孩子”和“父母”,我认为你的问题中有一个拼写错误)被称为ALIAS或TABLE ALIASes。
答案 1 :(得分:4)
概念是self join
。但是,a
是语法错误。该表格为hierarchy
,别名为child
。
我会将自己的每个部分称为instance
。
答案 2 :(得分:2)
在SQL Server文档中,术语为table_source
:
指定要在Transact-SQL语句中使用的包含或不包含别名的表,视图或派生表源
在BNF语法中,它是:
<table_source> ::=
{
table_or_view_name [ [ AS ] table_alias ] [ <tablesample_clause> ]
[ WITH ( < table_hint > [ [ , ]...n ] ) ]
| rowset_function [ [ AS ] table_alias ]
[ ( bulk_column_alias [ ,...n ] ) ]
| user_defined_function [ [ AS ] table_alias ] [ (column_alias [ ,...n ] ) ]
| OPENXML <openxml_clause>
| derived_table [ AS ] table_alias [ ( column_alias [ ,...n ] ) ]
| <joined_table>
| <pivoted_table>
| <unpivoted_table>
| @variable [ [ AS ] table_alias ]
| @variable.function_call ( expression [ ,...n ] ) [ [ AS ] table_alias ] [ (column_alias [ ,...n ] ) ]
答案 3 :(得分:1)
'child', 'parent'
SQL-92标准规范中使用的术语是“相关名称”,是一种“标识符”。
'hierarchy'
SQL-92标准规范中使用的术语是“table”。
因此,您(编辑)问题的答案是:
此查询使用一个表(层次结构) 但两个相关名称(孩子和孩子) 亲本)。