Mysql Search απο πολλά tables

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

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

Απάντηση
Άβαταρ μέλους
chchrist
Δημοσιεύσεις: 924
Εγγραφή: 28 Ιουν 2003 20:25
Επικοινωνία:

Mysql Search απο πολλά tables

Δημοσίευση από chchrist » 11 Δεκ 2005 15:39

Γεια σας,

Έχω ας πούμε δύο tables ένα books και ένα authors. Τα δύο μεταξύ τους συνδέονται με το authID (primary key auto_increment στο authors) που υπάρχει και στα δύο.

Τώρα εγώ αν σε ένα query πω

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

SELECT * FROM books
θα μου βγάλει όλα τα rows από το books. Το authID θα το βγάλει, όπως είναι λογικό, με αριθμούς. Πως λοιπόν στο ίδιο query θα εμφανίσω και τα περιεχόμενα του authors; Νομίζω οτι γίνεται με την εντολή JOIN αλλά δεν έχω καταλάβει πως. :-?

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

Mysql Search απο πολλά tables

Δημοσίευση από cordis » 11 Δεκ 2005 16:44

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

Select * 
from books, authors
where books.authID = authors.authID
ή

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

SELECT * FROM books
     LEFT JOIN authors books.authID = authors.authID
δοκίμασε να μάθεις την 1η σύνταξη, είναι ποιο εύκολη στην εκμάθηση.
Τελευταία επεξεργασία από το μέλος cordis την 12 Δεκ 2005 00:14, έχει επεξεργασθεί 1 φορά συνολικά.
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
chchrist
Δημοσιεύσεις: 924
Εγγραφή: 28 Ιουν 2003 20:25
Επικοινωνία:

Mysql Search απο πολλά tables

Δημοσίευση από chchrist » 12 Δεκ 2005 00:11

Ευχαριστώ για την απάντηση cordis

Έκατσα και διάβασα για JOINS και μάλλον δεν γίνεται αυτό που θέλω με ένα query.

Αυτό που μου έδωσες

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

SELECT * FROM books
 LEFT JOIN authors 

 ΟΝ
  
 books.authID = authors.authID
Μου εμφανίζει μαζί με το books και τα authID όχι όμως και τα authNAME kai authSURNAME που έχει μέσα το table authors.

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

Mysql Search απο πολλά tables

Δημοσίευση από cordis » 12 Δεκ 2005 00:15

έτσι;

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

SELECT books.*, authors.* FROM books
     LEFT JOIN authors books.authID = authors.authID
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
chchrist
Δημοσιεύσεις: 924
Εγγραφή: 28 Ιουν 2003 20:25
Επικοινωνία:

Mysql Search απο πολλά tables

Δημοσίευση από chchrist » 12 Δεκ 2005 00:35

Ναι τέλεια!!!

Ευχαριστώ πολύ!!

Το επεξεργάστηκα και τελικά έφτασα εκεί που ήθελα!!
Αποτελέσματα απο 3 tables με keywords!!

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

SELECT B.*, A.*, P.* FROM books AS B
     LEFT JOIN publishers AS P,authors AS A
     
     ON (
      B.authID = A.authID
       AND
      B.authID = P.pubID
        )
        
     WHERE A.authNAME LIKE '%$authsearch'
      
      OR  P.pubNAME LIKE  '%$pubsearch'

Άσχετο αλλά έφτασα τα 400 posts...δεν το περίμενα ποτέ...αντε να τα 1000άσω!!

Άβαταρ μέλους
chchrist
Δημοσιεύσεις: 924
Εγγραφή: 28 Ιουν 2003 20:25
Επικοινωνία:

Mysql Search απο πολλά tables

Δημοσίευση από chchrist » 12 Δεκ 2005 12:52

Μια ερώτηση ακόμη....το LIKE είναι case-sensitive;

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

Mysql Search απο πολλά tables

Δημοσίευση από cordis » 12 Δεκ 2005 15:53

By default, MySQL searches are not case sensitive
http://dev.mysql.com/doc/refman/4.1/en/ ... ivity.html
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
chchrist
Δημοσιεύσεις: 924
Εγγραφή: 28 Ιουν 2003 20:25
Επικοινωνία:

Mysql Search απο πολλά tables

Δημοσίευση από chchrist » 12 Δεκ 2005 23:32

Πραγματικά είναι πολύ περιέργο αυτό που αντιμετωπίζω...άμα με το LIKE γράψω DAVID (η εισαγωγή στην βάση είναι DAVID ) το βρήσκει άμα γράψω david τίποτα....

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Mysql Search απο πολλά tables

Δημοσίευση από Rapid-eraser » 14 Δεκ 2005 21:03

mipos exeis orisei to filed sav Binnary ?
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Απάντηση

Επιστροφή στο “MySQL”

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

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