Προς το περιεχόμενο

Help για SQL εντολη


Critter

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα παιδια.

Βασικα εχω το εξης προβλημα εχω 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 χειροκινητα.

 

Ευχαριστω.

Δημοσ.

Έστω ότι ο δεύτερος πίνακας με τα δεδομένα σου ονομάζεται 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

Δημοσ.
Έστω ότι ο δεύτερος πίνακας με τα δεδομένα σου ονομάζεται 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).

 

Μπορει να γινει κατι τετοιο?

Δημοσ.

Υποθέτω ότι η στήλη 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 

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...