search απορία σε δύο Table

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

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

Απάντηση
txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

search απορία σε δύο Table

Δημοσίευση από txc » 24 Νοέμ 2008 15:29

καλησπέρα παιδιά ,έχω μια απορία

έχω δύο πίνακες οι οποίοι περιέχουν κοινά στοιχεία μεταξύ τους, για παράδειγμα έχω
table1
table2

table1: id,name
table2: id,name

έχω αρκετές εγγραφές στο table1, αυτό που θέλω είναι στο τέλος όλων των εγγραφών να έχω ένα κουμπί αναζήτηση στο οποία θα τις μαζεύει όλες και θα τις συγκρίνει με τις εγγραφές του table2 και θα μου εμφανίζει αυτές που είναι κοινές

μπορούσα σε κάθε εγγραφή του table1 να κάνω αναζήτηση ξεχωριστά για την κάθε εγγραφή, αλλά θέλω να δοκιμάσω να μαζεύω όλες τις εγγραφές του Table1 και να μου τις συγκρίνει με του table2

ευχαριστώ

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

search απορία σε δύο Table

Δημοσίευση από Apostolis_38 » 24 Νοέμ 2008 18:32

Τι εννοείς "στο τέλος όλων των εγγραφών να έχω ένα κουμπί αναζήτηση στο οποία θα τις μαζεύει όλες και θα τις συγκρίνει με τις εγγραφές";

Τις εμφανίζεις κάπου και θέλεις να βάλεις εκεί ένα select;
οπότε μπορείς να βάλεις δεύτερο ή τρίτο select (αν υποθέσουμε οτι θέλεις να βρίσκεις τις εγγραφές για κάθε πίνακα ξεχωριστά + τις κοινές εγγραφές where id1=id2 and name1=name2.

Εκτός κι αν θέλεις συνολικό αριθμό εγγραφών (select (sum) ) ή κάτι παρόμοιο.

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

search απορία σε δύο Table

Δημοσίευση από cpulse » 25 Νοέμ 2008 15:28

Γενικά αυτό που ζητάς είναι κάτι που ζορίζει πολύ τον server, ειδικά αν έχεις πολλές εγγραφές.

Μάλιστα, αν οι δύο αυτοί πίνακες έχουν ίδια fields τότε είναι και σχεδιαστικό λάθος να έχεις δύο ξεχωριστούς πίνακες. Σκέψου την πιθανότητα να τα ενσωματώσεις στον ίδιο πίνακα και να έχεις ένα field που θα ξεχωρίζει τον τύπο τους.

Αλλά για την απάντηση στην ερώτηση σου.. εδώ είναι μια ιδέα

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

SELECT *
FROM table1
WHERE id IN (SELECT id FROM table2) AND name IN (SELECT name FROM table2)
Αυτό σίγουρα λειτουργεί σε MySQL 5. Έχω μια αμφιβολία αν λειτουργεί στις παλιότερες εκδόσεις.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

search απορία σε δύο Table

Δημοσίευση από dva_dev » 25 Νοέμ 2008 21:53

Δοκίμασε και το
select table1.* from table1 inner join table2 on (table1.id = table2.id and table1.name = table2.name)

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

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

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