Critter Δημοσ. 25 Ιουλίου 2008 Δημοσ. 25 Ιουλίου 2008 Καλησπερα παιδια. Βασικα εχω το εξης προβλημα εχω 2 βασεις με ερωτηματολογια τις οποιες θελω να ενωσω. Ουσιαστικα αυτο που με ενδιαφερει ειναι να ενωσω τους πινακες με τα αποτελεσματα. Η εντολη που χρησιμοποιειται απο τη βαση για να γινει η καταχωρηση μιας απαντησης ειναι : INSERT INTO `jos_survey_result` (`r_id`, `q_id`, `a_id`, `m_id`, `ac_id`, `session_id`, `value`) VALUES (1, 1, 1, 0, 0, 114, '0'), (2, 2, 5, 0, 0, 114, '0'), (3, 3, 8, 0, 0, 114, '0'), (4, 4, 16, 0, 0, 114, '0'), (5, 5, 20, 0, 0, 114, '0'), (6, 6, 39, 0, 0, 114, '0'); Το παραπανω ειναι ενα δειγμα απο την καταχωρηση των 11700 καταχωρησεων που εχει ο πινακας. Εχω λοιπον άλλον εναν πινακα ολοιδιο ο οποιος μετραει το r_id απο την αρχη. Ετσι λοιπον οταν παω να κανω insert τα δεδομενα σε αυτον που εχει τα 11700, βρισκει αναποφευκτα duplicate καταχωρησεις (τα r_id δηλαδη ειναι ιδια). Υπαρχει καποιο statement του στυλ INSERT INTO `jos_survey_result` (`r_id`+11700, `q_id`, `a_id`, `m_id`, `ac_id`, `session_id`, `value`) VALUES (1, 1, 1, 0, 0, 114, '0'), (2, 2, 5, 0, 0, 114, '0'),.... η οχι? Δηλαδη να κανω insert τα δεδομενα και να αρχιζει απο 11701 μιας και ο αλλος πινακας σταματαει να μετραει στο 11700. Καταλαβαίνετε οτι δεν μπορω να αλλαξω τα ids χειροκινητα. Ευχαριστω.
Theoxaris Δημοσ. 25 Ιουλίου 2008 Δημοσ. 25 Ιουλίου 2008 Έστω ότι ο δεύτερος πίνακας με τα δεδομένα σου ονομάζεται table2 και υποθέτω ότι έχει σαν στήλες την ίδια ονομασία όπως ο jos_survey_result: > INSERT INTO jos_survey_result (r_id, q_id, a_id, m_id, ac_id, session_id, value) SELECT r_id, q_id, a_id, m_id, ac_id, session_id, value FROM table2 WHERE r_id>11700
Critter Δημοσ. 25 Ιουλίου 2008 Μέλος Δημοσ. 25 Ιουλίου 2008 Έστω ότι ο δεύτερος πίνακας με τα δεδομένα σου ονομάζεται table2 και υποθέτω ότι έχει σαν στήλες την ίδια ονομασία όπως ο jos_survey_result: > INSERT INTO jos_survey_result (r_id, q_id, a_id, m_id, ac_id, session_id, value) SELECT r_id, q_id, a_id, m_id, ac_id, session_id, value FROM table2 WHERE r_id>11700 Σε ευχαριστω για την απαντηση αλλα δεν ειναι αυτο που ζηταω. Θα το αναλυσω πιο πρακτικα. Εχω τον πινακα1 με κλειδι το r_id με καταχωρημενες τις 2 αυτες γραμμες : (1, 1, 1, 0, 0, 114, '0'), (2, 2, 5, 0, 0, 114, '0'), Εχω τον πινακα2 με κλειδι το r_id με καταχωρημενες τις ίδιες γραμμες : (1, 1, 1, 0, 0, 114, '0'), (2, 2, 5, 0, 0, 114, '0'), Θελω να ενωσω αυτους τους πινακες ωστε ο πινακας1 να γινει (1, 1, 1, 0, 0, 114, '0'), (2, 2, 5, 0, 0, 114, '0'), (3, 1, 1, 0, 0, 114, '0'), (4, 2, 5, 0, 0, 114, '0'), Δηλαδη στο κλειδι του δευτερου πινακα προστίθεται η τιμή του τελευταιου κλειδιου του πρωτου. Ετσι παίρνουμε το 3 και το 4 (2+1 και 2+2). Μπορει να γινει κατι τετοιο?
Theoxaris Δημοσ. 25 Ιουλίου 2008 Δημοσ. 25 Ιουλίου 2008 Υποθέτω ότι η στήλη r_id είναι τύπου INT: > INSERT INTO jos_survey_result (r_id, q_id, a_id, m_id, ac_id, session_id, value) SELECT r_id+11700, q_id, a_id, m_id, ac_id, session_id, value FROM table2
Critter Δημοσ. 25 Ιουλίου 2008 Μέλος Δημοσ. 25 Ιουλίου 2008 Είσαι θεός, ήλιος καλοκαιρινός .Ευχαριστώ πολύ.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.