我有两个表:output_hash
和baseline
。 output_hash
包含plot_id
。 baseline
包含plot_number
。 plot_id
的前6位数由plot_number
组成。如何找到plot_id
中的output_hash
和plot_number
中的baseline
之间的交集?我希望结果为plot_number
(不是baseline
)。因此,要明确plot_id
包含plot_number
的价值。
因此,如果111234_5
位于plot_id
且111234
位于plot_number
,那么我希望在我的结果中使用222345_2
。但是,如果plot_id
位于plot_number
但222345
没有222345_2
,那么这不应该在结果中(如果plot_id
位于{{1}但是没有plot_number
以222345
开头,那么222345
将被排除在结果之外。
答案 0 :(得分:1)
一种方法是在子查询中使用exists
运算符和like
运算符:
SELECT *
FROM output_hash o
WHERE EXISTS (SELECT *
FROM baseline b
WHERE o.plot_id LIKE b.plot_number || '%')
答案 1 :(得分:0)
选择 * FROM output_hash 加入基线 ON SUBSTR(plot_id,1,6)= plot_number :: TEXT;