只是一个关于“约定”,可能会帮助你更好地了解“ID”的说明。
“id”(,通用约定)是一个自动编号的整数,可用于唯一地定位该表中的特定行。
每个表格(按照常规约定)都会有自己的“id”列,但这并不意味着您总是通过这些列加入。
表2很可能包含一个“外键”,使一个连接到Table
一个“外键”栏(通过共同约定)的命名往往是“表名” &的组合下划线&“id”。因此,一个可能的修订,以你的例子是这样的:
Table1 Table2
________ ________________________
id name id table1_id name
1 O 1000 1 T
2 B 9678 1 N
注意从表1的ID是如何在这个例子中,以表2的ID没有关系,所以查询现在是:
SELECT t1.name, t2.name
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.id = t2.table1_id;
加盟坚持指定的逻辑,这里是t1.id must equal t2.table1_id
。在逻辑中没有“最后”的“第一个”。任何符合指定条件的行都会加入。(注:&这可能意味着没有行获得加入视情况而定)
请从字后不使用表名之间的逗号。习惯于诸如INNER JOIN,LEFT OUTER JOIN(或它们的缩写JOIN和LEFT JOIN)这样的术语,这只是在长期的中好得多。
它会给你1 O => 1T和1 O => 1N。将它作为{(1,0)}和{(1,T),(1,N)}之间的笛卡尔积处理} –
[踢坏的恶习:使用旧式JOIN](http://sqlblog.com/blogs /aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx) –