Oracle多表查询:
1、先确定自己要的什么数据,是在一张表中还是在多个表查询的结果集中。
2、根据上述对表的分析,确定表与表之间的关系。选择合适的连接方式。如:内连接,外连接等。
3、选择合适的查询条件。查询到的先后顺序会影响性能。最直接的回减少笛卡尔积。
例子:A表100条数据,B表100条数据,C表100条数据。每张表中都有个字段ID;先查询A、B、C表中ID数量相等的数据。
第一种:select * from A,B,C where A.ID=B.ID and A.ID=C.ID AND B.ID=C.ID ;这样查询的笛卡尔积为100100100 = 1000000;
第二种:
SELECT
a.id
FROM
( SELECT b.id FROM b,c WHERE b.id = c.id )d , a
WHERE
a.id = d.id;
笛卡尔积为100*(B和C的结果集个数)+ 100*100;
和明显第二种笛卡尔积会小于等于第一种。
4、合理运用Oracle提供的函数。
5、整理请思路开始写SQL。
Oracle数据库多表查询及笛卡尔积的自我总结
最新推荐文章于 2024-04-19 13:28:49 发布