背景 & 案例答案代码::
有一个名为team的数据表,只包含 name一列,有('a', 'b', 'c', 'd')四条记录,分别代表四只不同的球队。 要求:用一条SQL语句,来显示由2支球队组成的所有比赛组合。
SELECT a.name, b.name
FROM team a, team b
WHERE a.name <> b.name;
不明白的地方:
一、不带JOIN的写法是什么招式?
二、不应该是这样的吗?
SELECT a.name, b.name
FROM team AS a
INNER JOIN team AS b
ON a.name <> b.name;
解答:
它们表达相同功能的不同SQL书写形式。带JOIN的是依照ANSI-92,例题答案是ANSI-89。
越新的标准越好。因为它使得要JOIN的条件更接近jion之后的表格,特别是同时JION多个表的时候。更具有可读性、逻辑更清晰。
附注:如果你想免费合适地学习SQL,不妨参看下这些网站:
1. SQL基础在线练习网站:https://www.sqlteaching.com;
2. Stanford公开课;