多表 SELECT 语句 / 某些查询快捷方式 |
图: 查询
SELECT s.stock_num, s.manu_code, s.description, s.unit_price, c.catalog_num, c.cat_advert, m.lead_time FROM stock s, catalog c, manufact m WHERE s.stock_num = c.stock_num AND s.manu_code = c.manu_code AND s.manu_code = m.manu_code AND s.manu_code IN ('HRO', 'HSK') AND s.stock_num BETWEEN 100 AND 301 ORDER BY catalog_num;
图: 查询
SELECT stock.stock_num, stock.manu_code, stock.description, stock.unit_price, catalog.catalog_num, catalog.cat_advert, manufact.lead_time FROM stock, catalog, manufact WHERE stock.stock_num = catalog.stock_num AND stock.manu_code = catalog.manu_code AND stock.manu_code = manufact.manu_code AND stock.manu_code IN ('HRO', 'HSK') AND stock.stock_num BETWEEN 100 AND 301 ORDER BY catalog_num;
图: 查询结果
stock_num 110 manu_code HRO description helmet unit_price $260.00 catalog_num 10033 cat_advert Lightweight Plastic with Vents Assures Cool Comfort Without Sacrificing Protection lead_time 4 stock_num 110 manu_code HSK description helmet unit_price $308.00 catalog_num 10034 cat_advert Teardrop Design Used by Yellow Jerseys; You Can Time the Difference lead_time 5 ⋮
不能将 ORDER BY 子句用于 TEXT 列 cat_descr 或 BYTE 列 cat_picture。
可以使用别名来缩短对不在当前数据库中的表的查询时间。
图: 查询
SELECT order_num, lname, fname, phone FROM masterdb@central:customer c, sales@western:orders o WHERE c.customer_num = o.customer_num AND order_num <= 1010;
图: 查询结果
order_num lname fname phone 1001 Higgins Anthony 415-368-1100 1002 Pauli Ludwig 408-789-8075 1003 Higgins Anthony 415-368-1100 1004 Watson George 415-389-8789 1005 Parmelee Jean 415-534-8822 1006 Lawson Margaret 415-887-7235 1007 Sipes Arnold 415-245-4578 1008 Jaeger Roy 415-743-3611 1009 Keyes Frances 408-277-7245 1010 Grant Alfred 415-356-1123
有关如何访问不在当前数据库中的表的更多信息,请参阅访问其他数据库服务器和 GBase 8s SQL 指南:语法。
还可以使用同义词作为不在当前数据库中的表以及当前表和视图的长名称的简写引用,有关如何创建和使用同义词的详细信息,请参阅 GBase 8s 数据库设计和实现指南。