Streams:
+----+-----------+
| id | server |
+----+-----------+
| 1 | ["1","15"]|
+----+-----------+
Servers:
+----+-------------------+------------------+
| id | server | download |
+----+-------------------+------------------+
| 1 | Server #1 | 2.05 |
| 2 | Server #2 | 23.96 |
| 3 | Server #3 | 8.08 |
| 15 | Server #15 | 3.03 |
+----+-------------------+------------------+
Ich brauche für Ergebnis so erhalten:MySQL LEFT JOIN ON JSON Werte erhalten
+----+-----------+--------------+
| id | server | download |
+----+-----------+--------------+
| 1 | Server #1 | 2.05 |
+----+-----------+--------------+
Also im Grunde muss ich aus Strömen Tabelle Server-Feld bekommen und das Feld müssen von Servern Tabelle lesen, was Server haben einen niedrigeren Download und geben diesen Server wie oben beschrieben zurück.
SELECT servers.server FROM servers
LEFT JOIN streams ON servers.id=CAST(json_extract(streams.server, '$[0]') AS
UNSIGNED)
WHERE streams.id=1;
So bekomme ich nur die ersten Server aus dem Ergebnis nicht zwei ... so dass ich dann vergleichen, was hat Liebhaber download ... ich weiß, dass Problem ist ‚$ [0]‘, aber ich weiß nicht, wie man links beitritt oder wie man alle werte von streams server liest (1 und 15) und dann hinzufügt, wesse ist lover von diesen zwei ... was fehlt mir?
Meine Frage gelöscht, weil die vielen Kommentare. \t Ich rate Ihnen, eine Verbindungstabelle namens 'stream_server' mit den Spalten' id', 'stream_id' und' server_id' zu erstellen. Dies nennt man Normalisierung, so dass Sie eine bessere optimale JOIN-Anweisung schreiben können. Viel Glück –
Ich weiß, dass ich andere Daten definieren muss, die Sie beschrieben haben..aber ich habe diese Zeilen und Tabellenstruktur mit meinem ganzen System verbunden (fügen Sie hinzu, bearbeiten Sie löschen aktivieren deaktivieren ...), also muss ich dies in einer Abfrage oder bekommen zwei Abfragen ... – John
für jedes gültige Element in der JSON könnte dies ein Element oder zwei Elemente oder zehn Elemente sein, die Sie benötigen eine separate LINKE JOIN gibt es keine bessere Lösung –