自己写程序时,遇到跟数据库之间的查询时,都是用:SELECT * FROM...WHERE...
这次看到别人写的程序中用到“select* from* inner join * on”:
strsql = "SELECT * FROM Item INNER JOIN Product ON Item.Id = Product.Id "
刚开始不是很明白的意思,后来在网上查了才知道,呵呵,总结一下,以免下回忘记了:
INNER JOIN:内连接
内连接:有两种,显式的和隐式的,返回连接表中符合连接条件和查询条件的数据行。(所谓的链接表就是数据库在做查询形成的中间表)。
例如:下面的语句1和语句2的结果是相同的。
语句1:隐式的内连接,没有INNER JOIN,形成的中间表为两个表的笛卡尔积。
SELECT O.ID,ORDER_NUMBER,C.ID,NAME FROM C, O WHERE C.ID=O.ID;
语句2:显示的内连接,一般称为内连接,有INNER JOIN,形成的中间表为两个表经过ON条件过滤后的笛卡尔积。
SELECT O.ID,ORDER_NUMBER,C.ID,NAME FROM C INNER JOIN O ON C.ID=O.ID;