[英]How to find information from three tables related to each other (MySQL)
我在MySQL
創建了一個數據庫經銷商 ,其中包含有關經銷商的所有信息,例如:
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
並且此信息存儲在三個表中,即:
dealer
address
contact_person
表的字段和數據如下:
該表的發牌人將Dealer_id作為主鍵。
`mysql> select * from dealer;
+-----------+-------------+----------------+-----------------+
| dealer_id | dealer_name | dealer_email | dealer_phone_no |
+-----------+-------------+----------------+-----------------+
| 101 | dell | dell@gmail.com | 9000000000 |
| 102 | asus | asus@gmail.com | 8000000000 |
| 103 | hp | hp@gmail.com | 7000000000 |
+-----------+-------------+----------------+-----------------+
3 rows in set (0.02 sec)
`
該表地址具有字段Dealer_address_id作為主鍵,以及字段add_dealer_id作為外鍵,它引用表經銷商的字段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)
`
並且此表contact_person的字段contact_person_id為主鍵,而cp_dealer_id字段為外鍵,該表還引用了發牌人的字段Dealer_id 。
`mysql> select * from contact_person;
+-------------------+--------------+-----------------+------------------------+
| contact_person_id | cp_dealer_id | con_per_name | con_per_email |
+-------------------+--------------+-----------------+------------------------+
| 1001 | 101 | Michael S. Dell | michael.dell@gmail.com |
| 1002 | 101 | Sam Greenblatt | sam.dell@gmail.com |
| 1003 | 102 | Jerry Shen | jerry.asus@gmail.com |
| 1004 | 103 | Dion J. Weisler | dion.hp@gmail.com |
+-------------------+--------------+-----------------+------------------------+
4 rows in set (0.01 sec)`
我想查找有關經銷商的所有信息,例如:
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
例如我有查詢:
`Find dealer on the basis of dealer id `
`Find dealer on the basis of dealer name `
`Find dealer on the basis of dealer email `
因此,請幫助我該怎么做?
您正在尋找的是MySQL中的join語句。
這是一個例子:
SELECT Dealer.dealer_id, Dealer.Name, Dealer.Email
FROM Dealer
INNER JOIN Address
ON Dealer.dealer_id=Address.dealer_id;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.