为什么在sql联接中使用点?
在SQL联接中,为什么我们使用tablename.column\u name,而在其他联接中,我们仅使用列名为什么在SQL联接中使用dot?如果联接中的多个表中存在列名,则只需使用tablename.column\u name。它需要知道您所指的是哪个表的列为什么在sql联接中使用点?,sql,join,Sql,Join,在SQL联接中,为什么我们使用tablename.column\u name,而在其他联接中,我们仅使用列名为什么在SQL联接中使用dot?如果联接中的多个表中存在列名,则只需使用tablename.column\u name。它需要知道您所指的是哪个表的列 如果列名是明确的,您可以只写列名。但是一些程序员更喜欢保持一致,并且始终使用显式形式。如果两个表具有相同的列名,则使用显式形式来解决歧义。让我们举一个例子,假设您有两个表employee和department,其中都有一个id列 如果要使用
如果列名是明确的,您可以只写列名。但是一些程序员更喜欢保持一致,并且始终使用显式形式。如果两个表具有相同的列名,则使用显式形式来解决歧义。让我们举一个例子,假设您有两个表employee和department,其中都有一个id列 如果要使用id字段连接这两个表。然后,由于id字段不明确,因此必须按如下方式写入表名:
select * from emp inner join departement on emp.id = departement.id
SELECT ID
FROM Clients C
JOIN Addresses A
ON A.ID = C.AddressId
即使要在连接时从两个表中获取某些特定列,也可以使用tablename.column name语法
select emp.name, departement.name
from emp inner join departement on emp.id = departement.id
这是最好的使用方法,它使您能够清楚地了解并避免SQL在确定您所引用的表的哪个字段时出现混淆 顺便说一句,tablename.column_name不一定单独用于联接。它可以在任何地方使用。它也可以用作表\u别名\u名称。列\u名称 例如:
TABLEA : EMP_ID, NAME, ADDRESS
TABLEB : EMP_ID, EMP_NAME, PHONE_NUMBER, MOBILE_NUMBER
*名称和EMP_名称具有相同的值
您的查询:
1. Below will cause error, since it does not know if EMP_ID belongs to TABLEA or TABLE B
SELECT EMP_ID , NAME, PHONE_NUMBER FROM TABLEA, TABLEB
2. Below queries will NOT cause error
SELECT TABLEA.EMP_ID , NAME, PHONE_NUMBER FROM TABLEA, TABLEB;
SELECT A.EMP_ID, NAME, PHONE_NUMBER FROM TABLEA A, TABLEB B;
-- Below would be recommended best practice to use for referring to variables:
SELECT A.EMP_ID, A.NAME, B.PHONE_NUMBER FROM TABLEA A, TABLEB B;
假设您有两个表:客户机和地址 Clients表包含以下列:ID、Name、AddressId Addresses表包含以下内容:ID、AddressField1、AddressField2 现在不太可能了,但为了向您展示我的意思,您的同事创建了一个如下的查询:
select * from emp inner join departement on emp.id = departement.id
SELECT ID
FROM Clients C
JOIN Addresses A
ON A.ID = C.AddressId
如果你看一下,你能确定他要拿哪个身份证吗?
SQL也不能,这就是为什么必须使用表名或别名进行定义
如果他愿意的话
SELECT Name
FROM Clients C
JOIN Addresses A
ON A.ID = C.AddressId
你可以很容易地分辨出他要找的是哪个名字,因为在这个上下文中只有一列有这个名字。。在sql中,用于将列名与表关联。例如,有两个表作为Employee和salary,有一个公共列作为ID,用于查询选择员工的薪资并输出薪资和姓名,但不输出ID
为此,我们使用下面的查询
SELECT Employee.name, salary.salary
FROM Employee
INNER JOIN salary
ON Employee.ID=salary.ID;
给你。在第一行中,用于选择表的哪一列和。最后一行用于检查这两个表中的ID,前面给出了这些表的名称
如果最后一行如下所示
ON ID=ID;
可能会出现冲突/混乱,因此会触发错误
干杯
Rakesh因为我们要连接两个表,所以必须指定它是哪个表,因为多个表可能具有相同的列名,需要确定您实际引用的列如果您给出一个语法混乱的示例查询,这将是一个更好的问题!因为这是最佳实践,让您能够清楚地了解并避免SQL在确定您所引用的表的哪个字段时出现混淆!顺便说一句,tablename.column_name不一定单独用于联接。它可以在任何地方使用。它也可以用作表\u别名\u名称。列\u名称