joins
和子查询(subqueries
)
举个例:
SELECT supplier_id, name
FROM supplier s
WHERE EXISTS (SELECT *
FROM part p
WHERE p.inventory_qty < 10
AND p.supplier_id = s.supplier_id);
这个子查询与
SELECT
指令是有关联的,这个查询将会遍历
supplier
表的所有行,如果在
inventory_qty
列
和
part
表的
supplier_id
列上没有索引将会导致多重的查询,也就是
part
表会全表搜索。不过可以重写这个查询用一个
join,
例:
SELECT s.supplier_id, s.name
FROM supplier s JOIN part p
ON p.supplier_id = s.supplier_id
WHERE p.inventory_qty < 10;
转载于:https://blog.51cto.com/longsoft/82041