Ich kann nicht scheinen dies für das Leben von mir herauszufinden: xGROUP_CONCAT aus mehreren Unterabfragen?
Ich habe zwei Tabellen ..
- 1 = Tag Links
- 2 = Tag Data
Wenn ich nach einem Profil abfrage, kann jedes Profil mehrere Einträge in der Tag-Links-Tabelle haben. Sobald ich die Tag-Links abrufen, möchte ich den Tag-Text aus der Tag-Datentabelle abrufen.
Ich kann dies tun mit: SELECT * FROM platform.tagWords WHERE tagId IN (SELECT tagId FROM platform.user sProfilesTags WHERE userId = 1001)
Aber es geht durch jeden Tag (rund 50.000) und prüft dann, ob es den Benutzer zugeordnet wird, so dass nicht genau eine Lösung, da jede Abfrage 5- nimmt 8 Sekunden.
Gibt es eine Möglichkeit, dies umzukehren?
Alle Tipps oder Ratschläge werden sehr geschätzt.
Vielen Dank im Voraus!
* update
So versuche ich dies mit einem Join einen Stich zu geben, aber ich bin es zu stecken: P
SELECT
GROUP_CONCAT(tagWords.tagWord SEPARATOR ', ') AS tags,
usersProfiles.*
FROM platform.users u
INNER JOIN platform.usersProfilesTags ON usersProfilesTags.userId = u.userId
INNER JOIN platform.usersProfiles ON usersProfiles.userId = u.userId
INNER JOIN platform.tagWords ON tagWords.tagId = usersProfilesTags.tagId
WHERE u.userName = 'mattstest'
Sie erwähnen Profil, aber die Tabelle ist Tag Data? –
Ja, die andere (Ursprungstabelle) ist usersProfiles, wo ich die userId finde, um die Tags zu finden, die aus der Tag-Links-Tabelle verlinkt sind. –
Was ist das Tabellenschema (die 'CREATE' Anweisungen für die Tabellen)? Was ist mit dem Ergebnis der Join-Anweisung nicht das, was Sie wünschen? – outis