MySQL create table advanced join

Use table alias

SELECT * FROM customers C, orders O, orderitems OI WHERE C.cust_id = O.cust_id AND OI.order_num = O.order_num AND prod_id = 'RGAN01';

Insert picture description here

Self-association

SELECT * FROM customers c1, customers c2 WHERE c1.cust_name = c2.cust_name AND c2.cust_contact = 'Jim Jones';

Insert picture description here

Natural connection

SELECT c.*, o.order_num, o.order_date FROM customers c, orders o, orderitems oi WHERE c.cust_id = o.cust_id AND oi.order_num = o.order_num AND prod_id = 'RGAN01';

Insert picture description here

External connection

SELECT * FROM customers LEFT OUTER JOIN orders ON customers.cust_id = orders.cust_id;

Insert picture description here

SELECT * FROM customers RIGHT OUTER JOIN orders ON customers.cust_id = orders.cust_id;

Insert picture description here

Use joins with aggregate functions

SELECT 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;

Insert picture description here

SELECT customers.cust_id, COUNT(orders.order_num) AS num_ord FROM customers LEFT JOIN orders ON customers.cust_id = orders.cust_id GROUP BY customers.cust_id;

Insert picture description here

Guess you like

Origin blog.csdn.net/qq_37335220/article/details/112402243