Πως βρίσκουμε ορφανές εγγραφές χωρίς subquery

Γενικές συζητήσεις για SQL και SQL Servers (RDBMS)

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27622
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Πως βρίσκουμε ορφανές εγγραφές χωρίς subquery

Δημοσίευση από cordis » 05 Απρ 2003 14:07

Η πιο πολλές βάσεις μας δίνουν την δυνατότητα να έχουμε subquery μέσα στο select μας... τι γίνετε όμως εάν είμαστε σε κάποια βάση που δεν μας δίνει αυτή την δυνατότητα όπως η MySQL;

Θα πρέπει να παίξουμε τότε με τα joins για να καταφέρουμε κάποια πράγματα που με ένα subquery θα ήταν πιο απλά σε εμάς που έχουμε μάθει να ζούμε με αυτά..


Έστω ότι θέλουμε να βρούμε ποιες έγγραφες από του phpbb_user_group είναι ορφανές (δεν έχουν αντίστοιχες εγγραφές) σε σχέση με τον πίνακα phpbb_users

Σε μια βάση που υποστιρίζει subqueries θα γράφαμε:

Κώδικας: Επιλογή όλων

SELECT phpbb_user_group.user_id 
FROM phpbb_user_group
WHERE  phpbb_user_group .user_id not in 
             ( SELECT phpbb_users.user_id 
               FROM phpbb_users)
Στην MySQL πρέπει να γράψουμε:

Κώδικας: Επιλογή όλων

SELECT phpbb_user_group.user_id 
FROM phpbb_user_group LEFT JOIN phpbb_users 
on phpbb_user_group .user_id = phpbb_users.user_id
WHERE phpbb_users.user_id is null
Ίσως τελικά ο δεύτερος τρόπος να είναι και πιο γρήγορος, απλά ο πρώτος φαίνεται πιο λογικός στο μάτι...
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
tsiger
Honorary Member
Δημοσιεύσεις: 1431
Εγγραφή: 11 Νοέμ 2002 13:40
Τοποθεσία: Thessaloniki Observation Center
Επικοινωνία:

Πως βρίσκουμε ορφανές εγγραφές χωρίς subquery

Δημοσίευση από tsiger » 05 Απρ 2003 14:47

Βασικα Γιαννη φανταζομαι πως θα εχεις ολοκληρες μαχες σε forum για το θεμα αυτο. Εχει πολυ γελιο μιας και σε προσωπικες μου εμπειριες και οι 2 ιδεες χρησιμοποιηθηκαν αλλοτε γιατι δεν υπηρχε δυνατοτητα και αλλοτε γιατι μου κολλουσε στο ματι καλυτερα.

Αβυσσος η ψυχη των db. :D

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27622
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Πως βρίσκουμε ορφανές εγγραφές χωρίς subquery

Δημοσίευση από cordis » 06 Απρ 2003 10:46

Μόνο μάχες; Βαρτελό... ;)

Η πλάκα είναι ότι μετά (αφού βρήκα τα ορφανά) ανακάλυψα ότι στο FROM του DELETE δεν δέχεται τέτοιου τύπου joins για να τα σβήσω.. :evil: εκεί να δεις πατέντες ;)

- Τα έβγαλα από το SELECT σε μια λίστα σε text αρχείο
- Το φόρτωσα στο word και μετέτρεψα τα paragraph σε ,
- Τα έκανα copy στο DELETE με WHERE ... IN ( ids)

φτου σκουλικομυρμηγκότρυπα :hammer:

το επόμενο forum θα το βάλω σε Oracle με Aplication Server.. :pint:
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
tsiger
Honorary Member
Δημοσιεύσεις: 1431
Εγγραφή: 11 Νοέμ 2002 13:40
Τοποθεσία: Thessaloniki Observation Center
Επικοινωνία:

Πως βρίσκουμε ορφανές εγγραφές χωρίς subquery

Δημοσίευση από tsiger » 06 Απρ 2003 14:36

LOL John,

i SQL einai oraio paixnidi (proswpikh apopsh). Apla telika egw katalava pws kathe developer exei kapou sto disko tou ena tono apo sql queries kai me megala kokkina grammata tonizei posa depon pire mexri na ftasei sto epithimito apotelesma, den vgainei pera alliws. xexexexexexex

Άβαταρ μέλους
Escapest
Δημοσιεύσεις: 1
Εγγραφή: 15 Μάιος 2004 22:19

Πως βρίσκουμε ορφανές εγγραφές χωρίς subquery

Δημοσίευση από Escapest » 16 Μάιος 2004 02:20

tsiger έγραψε:LOL John,

i SQL einai oraio paixnidi (proswpikh apopsh). Apla telika egw katalava pws kathe developer exei kapou sto disko tou ena tono apo sql queries kai me megala kokkina grammata tonizei posa depon pire mexri na ftasei sto epithimito apotelesma, den vgainei pera alliws. xexexexexexex
Την καλησπέρα μου και απο εμένα,
Και καλός σας βρήκα.

tsiger οχι απλά Depon αλλά Extra Depon και αναβράζοντα.

Απάντηση

Επιστροφή στο “Βάσεις Δεδομένων και SQL - γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες