章XVI:高度なリンクを作成します

@author:トービン
@date:2019年10月31日夜07時27分19秒

これは、テーブルの別名(テーブルも使いやすい、名前を変更することができるリンクされる)、および集約関数を実装する方法について説明します。

# 自联结,也可以用子查询来实现
# 这里首先p2已经进行了行的筛选
SELECT p1.prod_id, p1.prod_name
FROM products AS p1, products AS p2
WHERE p1.vend_id = p2.vend_id
AND p2.prod_id ='DTNTR';

# 自然联结
# 只返回唯一的列,不会出现重复的列
# 此处省略,使用通配符,c是表名。
SELECT c.*,...

# 外部联结,没用出现的行也会被返回
# 内部联结,是返回共同出现的那些行
# LEFT JOIN ,LEFT和RIGHT决定了没有出现的行,返回的是左边的表,还是右边的表
# RIGHT JOIN
SELECT customers.cust_id, orders.order_num
FROM customers LEFT OUTER JOIN orders
ON customers.cust_id = orders.cust_id;

# 对联结表使用聚合函数
SELECT customers.cust_name, 
               customers.cust_id,
               COUNT(orders.order_num) AS num_ord
FROM customers INNER JOIN orders
ON customers.cust_id = orders.cust_id;
GROUP BY customers.cust_id;

# 联结注意的问题
# 保证使用正确的联结条件,并且应该总是提供联结条件,负责返回笛卡儿积

おすすめ

転載: www.cnblogs.com/zuotongbin/p/11814163.html