Ich habe die folgenden 3 Tabellen und möchte in die "Inventory" -Tabelle, wo user_id = user_id und möchte alle "Ownedskins" von einem Benutzer mit dieser ID zeigen.MySql Join mehr als 2 Tabellen?
Wie kann ich das tun?
Danke für alle Antworten!
Ich habe die folgenden 3 Tabellen und möchte in die "Inventory" -Tabelle, wo user_id = user_id und möchte alle "Ownedskins" von einem Benutzer mit dieser ID zeigen.MySql Join mehr als 2 Tabellen?
Wie kann ich das tun?
Danke für alle Antworten!
Vorausgesetzt, dass Sie die user_id
kennen, könnten Sie das mit einer einzigen join
tun, so:
SELECT
ownedskins.*
FROM
ownedskins JOIN inventory ON ownedskins.inventory_id = inventory.inventory_id
WHERE
inventory.user_id = x
Wo x
die ID des Benutzers möchten Sie
Sie auch mit alias tun können, um es sauberer aussehen:
SELECT
os.*
FROM
ownedskins os JOIN inventory i ON os.inventory_id = i.inventory_id
WHERE
i.user_id = x
Es funktioniert, danke! Weißt du auch, wie man die ID von dem Spieler erhält, der sich vorher angemeldet hat? Also kann ich diese ID für das x verwenden. Ich verwende den folgenden Code, um mich in einem anderen Skript anzumelden: [link] (https://imgur.com/a/lELVD) –
Kein Problem. Über deine andere Frage, was meinst du mit 'vorher angemeldet '? Wenn Sie versuchen, die 'id' des Benutzers zu erhalten, der sich anmeldet, sollten Sie Ihre Abfrage in 'SELECT user_id, userpassword FROM ...' ändern und dann '$ row ['user_id']' – Piyin
[link] speichern (https://imgur.com/a/fi1LE) Ich möchte die $ _SESSION ['user_logged'] in einem anderen Skript aufrufen, wie ist das möglich? Dies speichert die ID des Benutzers, der sich in meinem Skript angemeldet hat. –
Angenommen, Sie haben die folgenden Tabellen:
Driver
Car
Keys
Wenn Sie Zugriff auf alle wollen 3 von ihnen Sie Folgendes tun können:
SELECT D.name, C.plate, K.state
FROM Driver D, Car C, Keys K
WHERE C.key_id = K.id and
K.owner_id = D.id;
Verwendung VERBINDUNGEN:
SELECT D.name, C.plate, K.state
FROM Car C JOIN Keys K
ON C.key_id = K.id JOIN Driver D
ON K.owner_id = D.id;
Fördern Sie die Verwendung von expliziten 'JOIN' sintaxis, Aaron Bertrand schrieb einen schönen Artikel [Bad Gewohnheiten zu treten: mit alten Stil JOINs] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-j oins.aspx) darüber. –
mehr als 2 Tische mit MySql Beispiel Joining:
SELECT i.*
FROM ownedskins o
JOIN inventory i
ON o.inventory_id=i.inventory_id
JOIN user u
ON u.user_id = i.user_id
WHERE u.user_id = 1
verbindet ist sehr einfach, so etwas wie folgt verwenden:
SELECT *
FROM table1 t1
JOIN table2 t2 ON t1.id = t2.id
JOIN table3 t3 ON t2.id2 = t3.id
Sie auch JOIN Varianten verwenden können, wie LEFT JOIN, INNER JOIN, OUTER JOIN ...
Mögliche Duplikat [Joining drei Tabellen mit MySQL] (https://stackoverflow.com/questions/3709560/joining-three-tables-using-mysql) – Phonolog