SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price<=5;
SELECT vend_id,prod_id,prod_price FROM products WHERE vend_id IN (1001,1002);
SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price<=5 UNION SELECT vend_id,prod_id,prod_price FROM products WHERE vend_id IN (1001,1002);
SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price<=5 UNION SELECT vend_id,prod_price,prod_id FROM products WHERE vend_id IN (1001,1002);
SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price<=5 UNION ALL SELECT vend_id,prod_id,prod_price FROM products WHERE vend_id IN (1001,1002);
SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price<=5 UNION SELECT vend_id,prod_id,prod_price FROM products WHERE vend_id IN (1001,1002) ORDER BY vend_id,prod_price;
SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price<=5 OR vend_id IN (1001,1002);
SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price<=5;
vend_id | prod_id | prod_price |
1003 | FC | 2.50 |
1002 | FU1 | 3.42 |
1003 | SLING | 4.49 |
1003 | TNT1 | 2.50 |
SELECT vend_id,prod_id,prod_price FROM products WHERE vend_id IN (1001,1002);
vend_id | prod_id | prod_price |
1001 | ANV01 | 5.99 |
1001 | ANV02 | 9.99 |
1001 | ANV03 | 14.99 |
1002 | FU1 | 3.42 |
1002 | OL1 | 8.99 |
使用组合查询:UNION
SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price<=5 UNION SELECT vend_id,prod_id,prod_price FROM products WHERE vend_id IN (1001,1002);
vend_id | prod_id | prod_price |
1003 | FC | 2.50 |
1002 | FU1 | 3.42 |
1003 | SLING | 4.49 |
1003 | TNT1 | 2.50 |
1001 | ANV01 | 5.99 |
1001 | ANV02 | 9.99 |
1001 | ANV03 | 14.99 |
1002 | OL1 | 8.99 |
使用多个where条件:
SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price<=5 OR vend_id IN (1001,1002);
vend_id | prod_id | prod_price |
1001 | ANV01 | 5.99 |
1001 | ANV02 | 9.99 |
1001 | ANV03 | 14.99 |
1003 | FC | 2.50 |
1002 | FU1 | 3.42 |
1002 | OL1 | 8.99 |
1003 | SLING | 4.99 |
1003 | TNT1 | 2.50 |
关于组合查询(UNION):各个查询包含的列、表达式、聚集函数必须相同,对各列的次序没有要求,不过最好次序一致。
SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price<=5 UNION SELECT vend_id,prod_price,prod_id FROM products WHERE vend_id IN (1001,1002);
vend_id | prod_id | prod_price |
1003 | FC | 2.50 |
1002 | FU1 | 3.42 |
1003 | SLING | 4.49 |
1003 | TNT1 | 2.50 |
1001 | 5.99 | ANV01 |
1001 | 9.99 | ANV02 |
1001 | 14.99 | ANV03 |
1002 | 3.42 | FU1 |
1002 | 8.99 | OL1 |
SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price<=5 UNION ALL SELECT vend_id,prod_id,prod_price FROM products WHERE vend_id IN (1001,1002);
vend_id | prod_id | prod_price |
1003 | FC | 2.50 |
1002 | FU1 | 3.42 |
1003 | SLING | 4.49 |
1003 | TNT1 | 2.50 |
1001 | ANV01 | 5.99 |
1001 | ANV02 | 9.99 |
1001 | ANV03 | 14.99 |
1002 | FU1 | 3.42 |
1002 | OL1 | 8.99 |
SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price<=5 UNION SELECT vend_id,prod_id,prod_price FROM products WHERE vend_id IN (1001,1002) ORDER BY vend_id,prod_price;
vend_id | prod_id | prod_price |
1001 | ANV01 | 5.99 |
1001 | ANV02 | 9.99 |
1001 | ANV03 | 14.99 |
1002 | FU1 | 3.42 |
1002 | OL1 | 8.99 |
1003 | TNT1 | 2.50 |
1003 | FC | 2.50 |
1003 | SLING | 4.49 |
关于组合查询(UNION/UNION ALL):
各个查询包含的列、表达式、聚集函数必须相同,不过对各列次序没有要求,当然,最好次序相同。
使用组合查询(UNION), 会默认去除重复行。
使用组合查询(UNION ALL),不会去除重复行
关于组合查询的排序关于UNION / UNION ALL 的 ORDER BY):
组合查询中只能使用一个ORDER BY,且必须放在最后一个SELECT子句后
ORDER BY 是对所有SELECT 的结果进行排序。