第一代碼不能在MonetDB執行:接下來的代碼有什麼區別?
SELECT rc0.id as runcat, x0.id as xrtcat
FROM extractedcatalog x0
INNER JOIN image i0
ON i0.id = 1 AND i0.id = x0.image
INNER JOIN runningcatalog rc0
ON rc0.zone BETWEEN x0.zone-1
AND x0.zone+1
AND rc0.wm_decl BETWEEN x0.decl - i0.rb_smaj
AND x0.decl + i0.rb_smaj
AND rc0.x*x0.x +rc0.y*x0.y +rc0.z*x0.z >cos(radians(i0.rb_smaj));
連接終止!
但是下面的代碼可以很快執行,爲什麼?
SELECT rc0.id as runcat, x0.id as xrtcat
FROM extractedcatalog x0
INNER JOIN image i0
ON i0.id = 1 AND i0.id = x0.image
INNER JOIN runningcatalog rc0
ON rc0.zone BETWEEN x0.zone-1
AND x0.zone+1
AND rc0.wm_decl BETWEEN x0.decl - i0.rb_smaj
AND x0.decl + i0.rb_smaj
AND rc0.x*x0.x +rc0.y*x0.y +rc0.z*x0.z >cos(radians(0.0055));
在表格圖像中,只有一行:id = 1,rb_smaj = 0.0055。 非常感謝!
感謝Bohermian,你的權利,如果圖像表是大的,但圖像表只有1行,我試過你的代碼,你能告訴我下一步該怎麼做,最後一個條件涉及3個表格,如何創建一個內部查詢來選擇條件中涉及的列? – user2706760