我試圖通過添加一個新字段來修復一些數據。MySQL如何加入並從一張表中選擇可見記錄?
我有幾個月前的備份,我已經將這個數據庫恢復到我的服務器。
我正在查看名爲pads的表,其主鍵是PadID,重要的字段名爲RemoveMeDate。在恢復的(較舊的)數據庫中,實際日期設置在RemoveMeDate中的記錄較少。我的控制日期是2001-01-01 00:00:00,這意味着記錄不會隱藏(又名可見)。
我需要做的是從控制日期的舊數據庫/表中選擇所有記錄,並加入那些未設置控制日期的新數據庫/表中。
我希望我解釋正確。
我會再試一次,帶數字。我在舊錶中設置了80,000個可見記錄(設置了控制日期)和30,000個新的數據庫/表中。我需要從舊數據庫中選擇50,000個,以執行更新查詢。
繼承人我的查詢,我不能按我的意願去工作。 jules-fix-reasons是舊數據庫,jules是新的數據庫。
select p.padid
from `jules-fix-reasons`.`pads` p
JOIN `jules`.`pads` ON p.padid = `jules`.`pads`.`PadID`
where p.RemoveMeDate <> '2001-01-01 00:00:00' AND
`jules`.`pads`.RemoveMeDate = '2001-01-01 00:00:00'
編輯 - 也許我可以提供一個例子,而不是10,000條記錄我會展示1個例子。
p.pads (old table)
PadID=1 RemoveMeDate=2010-12-01 09:00:00
PadID=2 RemoveMeDate=2001-01-01 00:00:00
PadID=3 RemoveMeDate=2001-01-01 00:00:00
PadID=4 RemoveMeDate=2001-01-01 00:00:00
PadID=5 RemoveMeDate=2001-01-01 00:00:00
PadID=6 RemoveMeDate=2001-01-01 00:00:00
PadID=7 RemoveMeDate=2001-01-01 00:00:00
PadID=8 RemoveMeDate=2001-01-01 00:00:00
PadID=9 RemoveMeDate=2001-01-01 00:00:00
PadID=10 RemoveMeDate=2009-01-05 00:10:00
因此,theres 8(aks =一個80,000在真實表中)記錄可見。
Jules.pads
PadID=1 RemoveMeDate=2010-12-01 09:00:00
PadID=2 RemoveMeDate=2010-12-01 08:00:00
PadID=3 RemoveMeDate=2010-12-01 07:00:00
PadID=4 RemoveMeDate=2010-12-01 06:00:00
PadID=5 RemoveMeDate=2001-01-01 00:00:00
PadID=6 RemoveMeDate=2001-01-01 00:00:00
PadID=7 RemoveMeDate=2001-01-01 00:00:00
PadID=8 RemoveMeDate=2001-01-01 00:00:00
PadID=9 RemoveMeDate=2001-01-01 00:00:00
PadID=10 RemoveMeDate=2009-01-05 00:10:00
因此,Theres 5(aks = a 50,000在真實表中)記錄可見。
所以SQL查詢我想會從表P返回記錄2,3,4
編輯ajreal - 工作查詢(FYI)
SELECT old_table.padid
FROM `jules-fix-reasons`.`pads` AS old_table
JOIN `jules`.`pads` AS new_table ON old_table.padid = new_table.`PadID`
WHERE new_table.RemoveMeDate <> '2001-01-01 00:00:00'
AND old_table.RemoveMeDate = '2001-01-01 00:00:00'
當您運行此您能得到什麼? – 2011-01-08 15:09:21
我沒有得到任何結果。 – Jules 2011-01-08 15:19:21