Περισσότερα
Oracle SQL: Ενημέρωση ενός πίνακα με δεδομένα από έναν άλλο πίνακα
Πίνακας 1:
id name desc
-----------------------
1 a abc
2 b def
3 c adf
Πίνακας 2:
id name desc
-----------------------
1 x 123
2 y 345
Στην SQL του Oracle, πώς μπορώ να εκτελέσω ένα ερώτημα sql update που μπορεί να ενημερώσει τον πίνακα 1 με το όνομα
και το desc
του πίνακα 2'χρησιμοποιώντας το ίδιο id
; Έτσι το τελικό αποτέλεσμα που θα έπαιρνα είναι
Πίνακας 1:
id name desc
-----------------------
1 x 123
2 y 345
3 c adf
Η ερώτηση προέρχεται από το https://stackoverflow.com/questions/5036918/sql-update-query-with-data-from-another-table, αλλά ειδικά για την Oracle SQL.
232
3
Αυτό ονομάζεται συσχετισμένη ενημέρωση
Υποθέτοντας ότι η ένωση οδηγεί σε μια προβολή διατηρημένη με κλειδί, θα μπορούσατε επίσης να
δοκιμάστε το
Εδώ φαίνεται να υπάρχει μια ακόμη καλύτερη απάντηση με ρήτρα 'in' που επιτρέπει πολλαπλά κλειδιά για την ένωση:
Το πλήρες παράδειγμα είναι εδώ: http://forums.devshed.com/oracle-development-96/how-to-update-from-two-tables-195893.html
Το βόειο κρέας είναι στο να έχετε τις στήλες που θέλετε να χρησιμοποιήσετε ως κλειδί σε παρένθεση στη ρήτρα where πριν το 'in' και να έχετε την εντολή select με τα ίδια ονόματα στηλών σε παρένθεση. where (column1,column2) in ( select (column1,column2) from table where "the set I want" ),