Χρήση Query(a) μέσα σε Query(b) (SQLite)
- rexes
- Kilobyte level
- Posts: 397
- Joined: Wed Sep 21, 2011 8:22 pm
- Academic status: 3rd year
- Gender: ♂
- Location: SomeWhere
Χρήση Query(a) μέσα σε Query(b) (SQLite)
Καλησπέρα συνάδελφοι! Μια ερώτηση!
Η βάση Α έχει table -> OptionsTable και το Column "OptionsColumn"
Η βάση Β έχει το table -> Lessons και το Column "Lesson_titles"
Γίνεται λοιπόν να γράψω κάτι τέτοιο->SELECT * FROM Lessons WHERE Lesson_Titles IN (SELECT * FROM OptionsTable) ;
Ευχαριστώ εκ των προτέρων!
Η βάση Α έχει table -> OptionsTable και το Column "OptionsColumn"
Η βάση Β έχει το table -> Lessons και το Column "Lesson_titles"
Γίνεται λοιπόν να γράψω κάτι τέτοιο->SELECT * FROM Lessons WHERE Lesson_Titles IN (SELECT * FROM OptionsTable) ;
Ευχαριστώ εκ των προτέρων!
Last edited by rexes on Thu Oct 18, 2012 4:27 pm, edited 1 time in total.
Εφαρμογή για το Πρόγραμμα του Οικονομικού Πανεπιστημίου Αθηνών
Δείτε περισσότερα για την εφαρμογή και πείτε την άποψή σας!
Δείτε περισσότερα για την εφαρμογή και πείτε την άποψή σας!
- nachos
- Gbyte level
- Posts: 1252
- Joined: Mon Aug 21, 2006 4:28 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Brachamee City
Re: Χρήση Query(a) μέσα σε Query(b) (SQLite)
Δεν ξέρω για Sqlite συγκεκριμένα, αλλά γενικά (π.χ. MS Sql Server, MySql) κάτι τέτοιο είναι εφικτό. To query που θα πρέπει να γράψεις θα πρέπει να είναι κάπως έτσι:
Προφανώς ο πίνακας OptionsColumn που ανέφερες πρέπει να περιέχει το αντίστοιχο του πεδίου Lesson_Titles. Αν το όνομα του πεδίου διαφέρει, το μετονομάζεις αντίστοιχα στο query.
Code: Select all
SELECT ls.*
FROM db1.schema1.Lessons ls INNER JOIN db2.schema2.OptionsColumn opt ON ls.Lesson_Titles = opt.Lesson_Titles
Nothing is impossible for the man who doesn't have to do it himself
- rexes
- Kilobyte level
- Posts: 397
- Joined: Wed Sep 21, 2011 8:22 pm
- Academic status: 3rd year
- Gender: ♂
- Location: SomeWhere
Re: Χρήση Query(a) μέσα σε Query(b) (SQLite)
nachos wrote:Δεν ξέρω για Sqlite συγκεκριμένα, αλλά γενικά (π.χ. MS Sql Server, MySql) κάτι τέτοιο είναι εφικτό. To query που θα πρέπει να γράψεις θα πρέπει να είναι κάπως έτσι:
Προφανώς ο πίνακας OptionsColumn που ανέφερες πρέπει να περιέχει το αντίστοιχο του πεδίου Lesson_Titles. Αν το όνομα του πεδίου διαφέρει, το μετονομάζεις αντίστοιχα στο query.Code: Select all
SELECT ls.* FROM db1.schema1.Lessons ls INNER JOIN db2.schema2.OptionsColumn opt ON ls.Lesson_Titles = opt.Lesson_Titles
Δεν καταλαβαίνω τι εννοείς!! :P Το ls.* και το db1.schema1 τι είναι;
Εφαρμογή για το Πρόγραμμα του Οικονομικού Πανεπιστημίου Αθηνών
Δείτε περισσότερα για την εφαρμογή και πείτε την άποψή σας!
Δείτε περισσότερα για την εφαρμογή και πείτε την άποψή σας!
- nachos
- Gbyte level
- Posts: 1252
- Joined: Mon Aug 21, 2006 4:28 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Brachamee City
Re: Χρήση Query(a) μέσα σε Query(b) (SQLite)
Tα ls και opt αντίστοχα είναι τα alias names για τους δύο πίνακες. Τα χρησιμοποιούμε ώστε να συντομεύουμε (συνήθως) τις αναφορές στους πίνακες (κοινώς για να μη ξαναγράφουμε όλο το όνομά τους που είναι πιο μακρυνάρι). Συνεπώς, το ls.* είναι η επιλογή όλων των πεδίων του ls (δηλαδή του πίνακα Lessons)
To db1.schema1 είναι το prefix του full qualified name του πίνακα, δηλαδή το όνομα της βάσης δεδομένων στην οποία ανήκει (έστω db1) και το schema της βάσης στο οποίο έχει καταχωρηθεί (έστω schema1). Αν δεν είχες προσδιορίσει schema στις create table εντολές που χρησιμοποίησες για να κατασκευάσεις τους πίνακες σου, τότε αυτοί αυτόματα τοποθετούνται στο default schema. Στον MS Sql Server π.χ. to default schema είναι το 'dbo'. Για την Sqlite δυστυχώς δε γνωρίζω πως ονομάζεται.
=============================================================================================================
Επειδή έχω μια υποψία ότι και τα δυο tables είναι στην ίδια database και απλά έκανες σαρδαμ στο αρχικό ποστ ( ), αυτή είναι η revised έκδοση του query που πρέπει να τρέξεις:
Δοκίμασέ το και πες μου!
To db1.schema1 είναι το prefix του full qualified name του πίνακα, δηλαδή το όνομα της βάσης δεδομένων στην οποία ανήκει (έστω db1) και το schema της βάσης στο οποίο έχει καταχωρηθεί (έστω schema1). Αν δεν είχες προσδιορίσει schema στις create table εντολές που χρησιμοποίησες για να κατασκευάσεις τους πίνακες σου, τότε αυτοί αυτόματα τοποθετούνται στο default schema. Στον MS Sql Server π.χ. to default schema είναι το 'dbo'. Για την Sqlite δυστυχώς δε γνωρίζω πως ονομάζεται.
=============================================================================================================
Επειδή έχω μια υποψία ότι και τα δυο tables είναι στην ίδια database και απλά έκανες σαρδαμ στο αρχικό ποστ ( ), αυτή είναι η revised έκδοση του query που πρέπει να τρέξεις:
Code: Select all
SELECT ls.*
FROM Lessons ls INNER JOIN OptionsColumn opt ON ls.Lesson_Titles = opt.Lesson_Titles
Nothing is impossible for the man who doesn't have to do it himself
- X-ray
- Mbyte level
- Posts: 854
- Joined: Tue Aug 29, 2006 2:09 pm
- Academic status: Alumnus/a
- Gender: ♂
- Contact:
Re: Χρήση Query(a) μέσα σε Query(b) (SQLite)
Αν το OptionsColumn είναι όντως Column τότε:nachos wrote:
Επειδή έχω μια υποψία ότι και τα δυο tables είναι στην ίδια database και απλά έκανες σαρδαμ στο αρχικό ποστ ( ), αυτή είναι η revised έκδοση του query που πρέπει να τρέξεις:
Δοκίμασέ το και πες μου!Code: Select all
SELECT ls.* FROM Lessons ls INNER JOIN OptionsColumn opt ON ls.Lesson_Titles = opt.Lesson_Titles
Code: Select all
Select ls.*
From Lessons ls, OptionsTable opt
Where ls.Lesson_Titles=opt.OptionsColumn
- rexes
- Kilobyte level
- Posts: 397
- Joined: Wed Sep 21, 2011 8:22 pm
- Academic status: 3rd year
- Gender: ♂
- Location: SomeWhere
Re: Χρήση Query(a) μέσα σε Query(b) (SQLite)
όχι δεν είναι στην ίδια βάση. Είναι 2 διαφορετικές βάσεις! Επίσης δοκιμάζω να κάνω Attach τώρα γιατί δεν γίνεται τίποτα!
Εφαρμογή για το Πρόγραμμα του Οικονομικού Πανεπιστημίου Αθηνών
Δείτε περισσότερα για την εφαρμογή και πείτε την άποψή σας!
Δείτε περισσότερα για την εφαρμογή και πείτε την άποψή σας!
- X-ray
- Mbyte level
- Posts: 854
- Joined: Tue Aug 29, 2006 2:09 pm
- Academic status: Alumnus/a
- Gender: ♂
- Contact:
Re: Χρήση Query(a) μέσα σε Query(b) (SQLite)
Λοιπόν το έψαξα λίγο.
έστω database1 εκεί που είναι ο Lessons
και 2 η άλλη
EDIT: και δεν χρειάζεσαι μάλλον καν Select ls.* σκέτο Select * θα κάνει.
έστω database1 εκεί που είναι ο Lessons
και 2 η άλλη
Code: Select all
attach database database1.db as db1;
attach database database2.db as db2;
SELECT *
FROM db1.Lessons ls INNER JOIN db2.OptionsTable opt ON ls.Lesson_Titles = opt.OptionsColumn
Re: Χρήση Query(a) μέσα σε Query(b) (SQLite)
translation : google "join tables from two different databases sqlite" , paste here first stackoverflow answerX-ray wrote:Λοιπόν το έψαξα λίγο.
- Spoiler: εμφάνιση/απόκρυψη
Mpomp is building an army.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ______☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. _ / \
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ______☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. _ / \
- Spoiler: εμφάνιση/απόκρυψη
- X-ray
- Mbyte level
- Posts: 854
- Joined: Tue Aug 29, 2006 2:09 pm
- Academic status: Alumnus/a
- Gender: ♂
- Contact:
Re: Χρήση Query(a) μέσα σε Query(b) (SQLite)
χαχα όχι απευθείας stackoverflow.ala_mages wrote:translation : google "join tables from two different databases sqlite" , paste here first stackoverflow answerX-ray wrote:Λοιπόν το έψαξα λίγο.
- Spoiler: εμφάνιση/απόκρυψη
Google is for noobs.
Ε κοίτα ο μόνος λόγος που το έψαξα είναι για το Attach..
Το υπόλοιπο είναι πάνω κάτω η πρώτη μου απάντηση.
- rexes
- Kilobyte level
- Posts: 397
- Joined: Wed Sep 21, 2011 8:22 pm
- Academic status: 3rd year
- Gender: ♂
- Location: SomeWhere
Re: Χρήση Query(a) μέσα σε Query(b) (SQLite)
Δεν μου βγήκε κάτι από τα παραπάνω θα το κάνω με άλλο τρόπο !! όπως το είχα πριν και δούλευε μια χαρά :P Ευχαριστώ για το χρόνο σας !!!
Εφαρμογή για το Πρόγραμμα του Οικονομικού Πανεπιστημίου Αθηνών
Δείτε περισσότερα για την εφαρμογή και πείτε την άποψή σας!
Δείτε περισσότερα για την εφαρμογή και πείτε την άποψή σας!
- nachos
- Gbyte level
- Posts: 1252
- Joined: Mon Aug 21, 2006 4:28 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Brachamee City
Re: Χρήση Query(a) μέσα σε Query(b) (SQLite)
Thnx στον X-Ray για τη διόρθωση, προφανώς είχα μπερδέψει το όνομα του πίνακα OptionsTable!
Καλύτερα να προτιμήσεις τη 2η έκδοση του query, καθώς το αρχικό είναι εξαιρετικά inefficient.
Αν σου "έπαιζε" το αρχικό query που πόσταρες:rexes wrote:Δεν μου βγήκε κάτι από τα παραπάνω θα το κάνω με άλλο τρόπο !! όπως το είχα πριν και δούλευε μια χαρά :P Ευχαριστώ για το χρόνο σας !!!
τότε είναι αδύνατον να μην σου παίζει και αυτό:rexes wrote:SELECT * FROM Lessons WHERE Lesson_Titles IN (SELECT * FROM OptionsTable)
Code: Select all
SELECT ls.*
FROM Lessons ls INNER JOIN OptionsTable opt ON ls.Lesson_Titles = opt.OptionsColumn
Nothing is impossible for the man who doesn't have to do it himself
- rexes
- Kilobyte level
- Posts: 397
- Joined: Wed Sep 21, 2011 8:22 pm
- Academic status: 3rd year
- Gender: ♂
- Location: SomeWhere
Re: Χρήση Query(a) μέσα σε Query(b) (SQLite)
Δεν είπα ότι μου έπαιζε, απλά ρώτησα αν γίνεται κάτι τέτοιο!
Εφαρμογή για το Πρόγραμμα του Οικονομικού Πανεπιστημίου Αθηνών
Δείτε περισσότερα για την εφαρμογή και πείτε την άποψή σας!
Δείτε περισσότερα για την εφαρμογή και πείτε την άποψή σας!