我有兩個疑問,每個返回節點IDMySQL的沙灘球從NOT IN查詢
SELECT node.nid
FROM dpf_node AS node
WHERE node.type = 'image' AND node.nid;
SELECT node.nid
FROM dpf_node AS node, dpf_image_galleries_images AS image
WHERE image.image_nid = node.nid
AND node.type = 'image'
AND image.gallery_nid = 138;
這兩個列表都正常工作
雖然最後我想要得到的節點ID列表這是在搜索結果的第一列表,而不是在第二,我一直在使用這個查詢:
SELECT node.nid
FROM dpf_node AS node
WHERE node.type = 'image'
AND node.nid NOT IN (SELECT node.nid
FROM dpf_node AS node, dpf_image_galleries_images AS image
WHERE image.image_nid = node.nid
AND node.type = 'image'
AND image.gallery_nid = 138);
有一段時間這是工作的罰款,但只是今天晚上是海灘泥包sequal親和造成停下來停下來。我懷疑(/希望)清除數據並重新開始將解決它,但真正想要解決真正的問題,以便在系統正常運行時高枕無憂。
「beach balling sequal pro」:你的意思是MySQL爲這個查詢花費了太多CPU時間? 「導致Apache崩潰」:你的意思是Apache花費了太多的CPU時間? – 2009-11-28 23:45:20
「AND node.nid;」在你的第一個查詢中:打字錯誤? – 2009-11-28 23:46:47
我推測可能是在查詢的第一部分從dpf_node中選擇的每一行都運行NOT IN查詢(括號中的那個)。我沒有足夠的精通MySQL知道如何解決它,但這是一個想法。 – 2009-11-28 23:49:45