Ich habe Mühe, in einer Suchanfrage zu artikulieren, was ich versuche zu tun. Es tut mir leid, wenn das vorher beantwortet wurde. Ich hoffe, dass jemand mit einem vollständigen Beispiel mich in die richtige Richtung weisen kann. Ich möchte entweder eine MySQL-Abfrage herausfinden oder eine bessere Möglichkeit zur Strukturierung meiner Datenbank kennenlernen, um Folgendes zu ermöglichen.Eine Tabelle durch andere Tabellen mit einer anderen verbinden
Wenn ich 4 Tabellen habe, was ist der beste Weg, um durch eine Tabelle zu einer anderen zu verknüpfen. Unten habe ich eine site_table, die eine ID für einen Manager (General Manager der Site), eine Region und ein Land hat. Die region_table und country_table zeigen auch auf die manager_table. Die manager_id auf der site_table zeigt auch auf die manager_table. Hier sind, was die Tabellen aussehen kann:
site_table
+------------+------------+-----------+------------+
| name | manager_id | region_id | country_id |
+------------+------------+-----------+------------+
| Manchester | 1 | 1 | 1 |
| Essex | 2 | 2 | 1 |
| Perth | 3 | 3 | 2 |
| Birmingham | 4 | 1 | 1 |
+------------+------------+-----------+------------+
region_table
+-----------+---------+------------+
| region_id | name | manager_id |
+-----------+---------+------------+
| 1 | Central | 5 |
| 2 | South | 6 |
| 3 | North | 7 |
+-----------+---------+------------+
country_table
+------------+----------+------------+
| country_id | name | manager_id |
+------------+----------+------------+
| 1 | England | 9 |
| 2 | Scotland | 8 |
+------------+----------+------------+
manager_table
+------------+-----------------+
| manager_id | name |
+------------+-----------------+
| 1 | Joe Bloggs |
| 2 | Graham Smith |
| 3 | Pat Sharp |
| 4 | Sally May |
| 5 | Peter Barratt |
| 6 | Jimmy Stone |
| 7 | Kim Keller |
| 8 | Peter Sheet |
| 9 | Matthew Lampart |
+------------+-----------------+
Ich möchte die Datenbank abzufragen, um die Site-Namen zurück, General Manager (GM) Name, Regional Manager (RM) Name und Country Manager der (CM) Namen wie so:
+------------+--------------+---------------+-----------------+
| site_name | GM_name | RM_name | CM_name |
+------------+--------------+---------------+-----------------+
| Manchester | Joe Bloggs | Peter Barratt | Matthew Lampart |
| Essex | Graham Smith | Jimmy Stone | Matthew Lampart |
| Perth | Pat Sharp | Kim Keller | Peter Sheet |
| Birmingham | Sally May | Peter Barratt | Matthew Lampart |
+------------+--------------+---------------+-----------------+
ich mag das Gefühl, dies zu tun, würde ich die site_table zum region_table und country_table zu verbinden habe, und verknüpfen Sie dann die manager_table zum site_table, region_table und country_table aber ich binde mich in Knoten nach oben versuchen es zu tun. Ich sehe die Links wie folgt aussehen:
site_table---+-----------------------+
| |
+-----region_table----manager_table
| |
+----country_table------+
Wenn jemand irgendwelche Ratschläge über die beste Art und Weise geben können diese Abfrage zu schreiben, oder einen besseren Weg, um die Datenbank zu strukturieren, die wirklich hilfreich wäre.
Dies sieht wie ein vernünftiges Schemadesign aus, * es sei denn * die einzige Information, die für einen Manager gespeichert wird, ist ihr Name (was unwahrscheinlich erscheint). –
Dank @MarkBannister, Sie haben Recht, es gibt mehr Informationen in der Manager-Tabelle – SBmore