0
是否可以使用JOIN重写以下SQL查询或以其他方式使其更有效? 我可能会使用SQLite(我可以连接到几个不同的数据库),这意味着我不能使用RIGHT JOIN(s)。下面查询中的省略号(...)意味着我可以在那里有许多UNION(s)。使用连接重写SQL查询(或使其他方式更有效)
我以编程方式构造这个查询,因为在我的情况下没有其他方法。我只是想知道如何重写它以使其更高效。有任何想法吗 ? 在此先感谢。
SELECT serial_nr, name, cert_type FROM certificates WHERE (cert_type<3 AND
serial_nr IN
(
SELECT DISTINCT serial_nr FROM certificates WHERE (cert_type<3 AND (name LIKE 'george%'))
UNION
SELECT DISTINCT serial_nr FROM ip_addresses WHERE ((address LIKE '192.168%'))
....
));
我认为你不需要那些'DISTINCT's;)。 –
这取决于数据库模式以及子查询和整体查询的选择性。 –