1
我必须从3个表中选择数据。我使用第一个和第二个表之间的INNER JOIN从第二个表中获取另一个字段。但如果有不匹配,我有另1台field.I来取代它现在用下面的查询,但时间太长process.Is有另一种方式做到这一点替代联盟运营商
SELECT tba.field, tba.field1, tba.field2 AS test FROM tablea tba
WHERE tba.field NOT IN (SELECT ta.field FROM tablea ta INNER JOIN tableb tb ON ta.field = tb.field)
UNION
SELECT ta.field, ta.field1, tb.field2 AS test FROM tablea ta
INNER JOIN tableb tb ON ta.field = tb.field
UNION
SELECT tc.field, tc.field1, tc.field2 AS test FROM tablec tc
见http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-看起来对我来说是一个非常简单的sql查询 - 并且注意关于查询性能的问题总是要求至少为所有相关表显示CREATE TABLE语句,说明。 – Strawberry
你是否在使用子查询而不是第二个查询联合是相同的。为什么? –
@strawberry我添加了链接。 – khalil