有没有办法根据查询中修改的列加入两个表?

时间:2014-07-17 18:05:19

标签: mysql join

我想根据表A中的_ID字段和表B中的linked_to字段加入两个表。我的问题涉及{{1}中的值所有字段都增加了1000000000.这意味着linked_to值为123的行需要链接到_ID值为1000000123的行。有没有办法从中删除1000000000 JOIN中的linked_to值?

编辑:

我发现使用大型数据库表(40,000多行)时,此操作需要很长时间才能发挥作用(或者查询导致服务器挂起而没有解释。)我还没有看到这个操作。有更有效的方法吗?

3 个答案:

答案 0 :(得分:0)

是的,假设值是整数,只需按照你的意思去做。

Select _ID, linked_to FROM TableA
JOIN TableB ON TableA._ID = (TableB.linked_to - 1000000000)

答案 1 :(得分:0)

是。您可以在join表达式中进行算术运算:

select *
from tableA a join
     tableB b
     on a._id = b.linked_to - 1000000000;

答案 2 :(得分:0)

您可以在select语句中执行算术运算。您可以使用+, - ,/,*,更改标志。 我建议使用括号。可以减去linked_to的值或添加_id的值。

您可以尝试的两个选项是:

SELECT * FROM tableA join tableB ON tableA._ID = (tableB.linked_to - 10000000000);

SELECT * FROM tableA join tableB ON (tableA._ID + 1000000000) = tableB.linked_to;