重写查询 - 棘手的JOIN任务

时间:2014-02-12 09:06:54

标签: mysql join

这是我的旧SQL:

SELECT so.samplelist_id
   FROM sales_flat_order sfo
   JOIN sales_flat_order_address sfoa
     ON sfo.entity_id = sfoa.parent_id
   JOIN samplelist_order AS so
     ON Concat(Lower(Trim(sfoa.postcode)), Lower(Trim(sfoa.lastname))) =
        Concat(Lower(Trim(so.postcode)), Lower(Trim(so.lastname))) 

正如您所看到的,它会比较2 tablessales_flat_order_addresssamplelist_order的字符串(我知道性能不佳)。这样可行。我现在的任务是重写该查询,以便它不再使用samplelist_order,但也sales_flat_order_adress

问题是,一个表(sales_flat_order_address)应该如何将数据与自身进行比较?这有可能吗?有没有诀窍怎么做?

谢谢!

1 个答案:

答案 0 :(得分:-1)

最佳答案 - 恕我直言 - 写一个脚本来建立正常的fk关系&在你的应用程序中运行它。

如果您不能这样做,请在每个字段上创建一个额外字段,其中包含连接字段&索引