URL: https://www.overclockers.at/coding-stuff/mysql_kreuztabelle_erstellen_121900/page_1 - zur Vollversion wechseln!
Hi,
bitte um kurze Hilfe, bin jetzt schon länger am suchen und komm nicht weiter.
Ich hab drei Tabellen:
tabUser (usrID)
tabMonster (monID)
tabKills (usrID, monID, anzKills)
also klassische m:n Verknüpfung
wie Soll ein select aussehen um eine Kreuztabelle zu erreichen:
Code: PHPName | Monster1 | Monster2 | Monster3 user1 | 50 | 0 | 22 user2 | 6 | 14 | 21 user3 | 0 | 4 | 5
ganz versteh ich dein problem nicht, aber JOIN ??
jop mit einem join geht und keys wären auch sinnvollZitat von tomstigganz versteh ich dein problem nicht, aber JOIN ??
in access würde ich es so lösen
über eine temporäre query
Code: PHPSELECT tabUser.uName, tabMonster.mNAME, tabKills.kills FROM tabMonster INNER JOIN (tabUser INNER JOIN tabKills ON tabUser.uID = tabKills.uID) ON tabMonster.mID = tabKills.mID;
Code: PHPTRANSFORM First(qryTemp.kills) AS ErsterWertvonkills SELECT qryTemp.uName FROM qryTemp GROUP BY qryTemp.uName PIVOT qryTemp.mNAME;
in mysql müsste es so gehen:
select t.uName tm.nName tk.kills from tabUser t, tabMonster tm, tabKills tk where und halt deine bedingung
ist nur ein denkanstoss musst halt noch anpassen
aus schreibfaulheit mach ich meistens
select blah,blah,blah
from blah join blah using(blah)
join blah using (blah)
für solch einfache abfragen sind zum glück keine temporary tables nötig.. der crossjoin wird doch von haus aus unterstützt...
http://www.devshed.com/c/a/MySQL/MySQL-Table-Joins/1/
nix kreuztabelle
Code: PHPSELECT dbo.s_kills.uID, dbo.s_kills.monID, dbo.s_kills.anzkills FROM dbo.s_users INNER JOIN dbo.s_kills ON dbo.s_users.uID = dbo.s_kills.uID INNER JOIN dbo.s_monster ON dbo.s_kills.monID = dbo.s_monster.monID
Hm, Nachdenkpause ich hab gebraucht - wenn wer wissen will wie man sowas ähnliches wie eine Kreuztabelle hinkriegt in MYSQL (das ja keine PIVOT Funktion kennt)
http://dev.mysql.com/tech-resources...zard/index.html
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025