Ich habe eine Tabelle mit folgendem Aufbau:
Gegenstand (primary key)
pro-Votes (int)
kontra-Votes (int)
Voter (text)
wobei in Voter alle User aufgelistet sind (user (pro), user2 (kontra, user3 (pro),...)
Nun würde mich mal interessieren, ob es User gibt, die generell pro oder generell kontra voten! Obwohl ich in SQL ziemlich fit bin, krieg ich das nicht ganz hin
SELECT name,
(SELECT count(id) FROM fohlen WHERE passVoter like '%'+r.name+' (pro)%') AS proVotes,
(SELECT count(id) FROM fohlen WHERE passVoter like '%'+r.name+' (kontra)%') AS kontraVotes
FROM user r
HAVING proVotes/(kontraVotes+proVotes)>0.95 OR kontraVotes/(kontraVotes+proVotes)>0.95
LIMIT 1
Ich habs mit der Usertabelle verknüpft.
Aber da bekomme ich immer 0 wenn ich like '%r.name (pro)%' schreibe!
Mit der Version oben akzeptiert die Datenbank das Plus nicht. Mit einem Punkt genauso wenig (ist in PHP eingebaut). Wie wäre es richtig?
Oder fällt euch sogar noch eine zeitsparendere Lösung ein ohne Subselect / join?
Gegenstand (primary key)
pro-Votes (int)
kontra-Votes (int)
Voter (text)
wobei in Voter alle User aufgelistet sind (user (pro), user2 (kontra, user3 (pro),...)
Nun würde mich mal interessieren, ob es User gibt, die generell pro oder generell kontra voten! Obwohl ich in SQL ziemlich fit bin, krieg ich das nicht ganz hin
SELECT name,
(SELECT count(id) FROM fohlen WHERE passVoter like '%'+r.name+' (pro)%') AS proVotes,
(SELECT count(id) FROM fohlen WHERE passVoter like '%'+r.name+' (kontra)%') AS kontraVotes
FROM user r
HAVING proVotes/(kontraVotes+proVotes)>0.95 OR kontraVotes/(kontraVotes+proVotes)>0.95
LIMIT 1
Ich habs mit der Usertabelle verknüpft.
Aber da bekomme ich immer 0 wenn ich like '%r.name (pro)%' schreibe!
Mit der Version oben akzeptiert die Datenbank das Plus nicht. Mit einem Punkt genauso wenig (ist in PHP eingebaut). Wie wäre es richtig?
Oder fällt euch sogar noch eine zeitsparendere Lösung ein ohne Subselect / join?
Comment