2016-04-09 10 views
0

ich eine Datenbank Händler in MySQL erstellt haben, die alle Informationen über ein Händler hat wie:Wie zueinander (MySQL) bezogenen Informationen aus drei Tabellen finden

 dealer id 
    dealer name 
    dealer email 
    dealer phone no 
    dealer's primary address 
    dealer's billing address 
    dealer's contact person 
    dealer's contact person's name 
    dealer's contact person's email 

Und diese Informationen nämlich in drei Tabellen gespeichert:

dealer 
    address 
    contact_person 

die Felder und Daten von Tabellen sind unten angegeben:

Diese Tabelle Händler hat Dealer-ID als Primärschlüssel.

`mysql> select * from dealer; 
    +-----------+-------------+----------------+-----------------+ 
    | dealer_id | dealer_name | dealer_email | dealer_phone_no | 
    +-----------+-------------+----------------+-----------------+ 
    |  101 | dell  | [email protected] |  9000000000 | 
    |  102 | asus  | [email protected] |  8000000000 | 
    |  103 | hp   | [email protected] |  7000000000 | 
    +-----------+-------------+----------------+-----------------+ 
    3 rows in set (0.02 sec) 
    ` 

Diese Tabelle Adresse hat Feld dealer_address_id als primäre keyand Feld als Fremdschlüssel add_dealer_id, die Verweise auf die Tabelle Händler ‚s Feld dealer_id.

`mysql> select * from address; 
    +-------------------+---------------+----------------------+-------------+----------------+ 
    | dealer_address_id | add_dealer_id | add_line1   | city  | address_type | 
    +-------------------+---------------+----------------------+-------------+----------------+ 
    |    10001 |   101 | 1, Dell Avenue  | Round Rock | Primary  | 
    |    10002 |   101 | 1, Dell Avenue  | Round Rock | Billing  | 
    |    10003 |   102 | 1, Asus Computer  | Fremont  | Primary  | 
    |    10004 |   102 | 1, Asus Headquarters | Taipei  | Billing  | 
    |    10005 |   103 | HP Inc    | Palo Alto | Primary  | 
    |    10006 |   103 | HP Inc    | Bristol  | Billing  | 
    +-------------------+---------------+----------------------+-------------+----------------+ 
    6 rows in set (0.01 sec) 
    ` 

Und diese Tabelle Contact_Person hat Feld contact_person_id als Primärschlüssel und Feld cp_dealer_id als Fremdschlüssel, die auch Verweise auf die Tabellen Händler ‚s Feld dealer_id.

`mysql> select * from contact_person; 
    +-------------------+--------------+-----------------+------------------------+ 
    | contact_person_id | cp_dealer_id | con_per_name | con_per_email   | 
    +-------------------+--------------+-----------------+------------------------+ 
    |    1001 |   101 | Michael S. Dell | [email protected] |  
    |    1002 |   101 | Sam Greenblatt | [email protected]  |  
    |    1003 |   102 | Jerry Shen  | [email protected] |  
    |    1004 |   103 | Dion J. Weisler | [email protected]  |  
    +-------------------+--------------+-----------------+------------------------+ 
    4 rows in set (0.01 sec)` 

Ich möchte wie alle Informationen über einen Händler finden:

dealer id 
    dealer name 
    dealer email 
    dealer phone no 
    dealer's primary address 
    dealer's billing address 
    dealer's contact person 
    dealer's contact person's name 
    dealer's contact person's email 

Zum Beispiel i Rückfragen:

`Find dealer on the basis of dealer id ` 

    `Find dealer on the basis of dealer name ` 

    `Find dealer on the basis of dealer email ` 

Also bitte helfen Sie mir, wie kann ich das tun?

+1

Aus Thema: Ist diese Datenbank zu illegalen Drogen zu tun? Konnte mysqself nicht helfen. –

Antwort

1

Was Sie suchen, ist eine Join-Anweisung in MySQL. Hier

ein Beispiel:

SELECT Dealer.dealer_id, Dealer.Name, Dealer.Email 
FROM Dealer 
INNER JOIN Address 
ON Dealer.dealer_id=Address.dealer_id; 
+0

@ Jay Mason hier ist, was ich auch tat (innen auf drei Tabellen verbinden), * VON Händler d SELECT JOIN Contact_Person cp ON d.dealer_id = cp.cp_dealer_id JOIN-Adresse ein ON a.' add_dealer_id' = d.dealer_id' GROUP BY d.'dealer_id', cp.'con_per_name'; Dies gibt mir alle Informationen über einen Händler. Aber was, wenn ich spezifisch durch dealer_id oder dealer_name finden möchte. –

+0

Und das hat nicht funktioniert, weil Sie es aus dem Internet kopiert haben und Sie die Tabellennamen nicht geändert haben? ziemlich sicher "a" "d" und "cp" sind nicht deine Tabellennamen. –

+0

@ Jay Mason hat es funktioniert, weil sie für die Tabellen selbst verwendet werden. Wie Sie sehen können, habe ich "a", "d" und "cp" nach den Tabellennamen verwendet. –