2011-12-03 17 views
14

मेरे पास दो टेबल के साथ एक SQLITE डेटाबेस है। टेबल ए में एक पूर्णांक टाइमस्टैम्प और एक अन्य पूर्णांक कॉलम होता है जिसमें एक पंक्ति आईडी होती है जिसमें तालिका बी में एक पंक्ति का जिक्र होता है जिसमें दो टाइमस्टैम्प होते हैं।SQLITE - आंतरिक जुड़ने के साथ पंक्तियों को हटाएं?

मैं मेज एक जहां यह टाइमस्टैम्प तालिका बी में दो टाइम स्टांप के बीच झूठ नहीं करता है की सभी पंक्तियों को हटाना चाहते हैं, और ROWID एक्स

यहाँ के बराबर है कि मैं क्या समय है, लेकिन मैं कर रहा हूँ है एक वाक्यविन्यास त्रुटि प्राप्त करना:

DELETE FROM network 
WHERE ROWID in (
    SELECT ROWID 
    FROM track 
    INNER JOIN network ON (track.ROWID = network.trackId) 
    WHERE network.timestamp > track.stopTime OR network.timestamp < track.startTime 
     AND network.trackId = X 

उत्तर

16

आपके पास अपने उप-चयन के लिए एक समापन संश्लेषण नहीं है। इसे आज़माएं:

DELETE FROM network 
WHERE ROWID in (
    SELECT ROWID 
    FROM track 
    INNER JOIN network ON (track.ROWID = network.trackId) 
    WHERE network.timestamp > track.stopTime OR network.timestamp < track.startTime 
     AND network.trackId = X 
) 

यदि यह काम नहीं करता है, तो अपनी वास्तविक वाक्यविन्यास त्रुटि पोस्ट करने का प्रयास करें।

+0

हाय, पोस्ट के लिए धन्यवाद। आप सही थे, जिसने पहली वाक्यविन्यास त्रुटि को हल किया। इसके अलावा ROWID जहां ट्रैक किया गया था, और चयन ROWID चयन ट्रैक होना चाहिए था। ROWID। स्क्रिप्ट अब काम कर रहा प्रतीत होता है। आपकी सहायताके लिए धन्यवाद! :) –

+0

tblRecipe से हटाएँ कहां ( का चयन करें CategoryID में tblSubCategories से CategoryID अंदरूनी शामिल हों tblRecipe पर (tblSubCategories.categoryID = tblRecipe.categoryID) कहां tblRecipe.categoryID = 9; – Raju

+0

त्रुटि ::: :(पास "," : वक्य रचना त्रुटि) – Raju

संबंधित मुद्दे