SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 16.06.2007, 19:36:24
Proteino Proteino ist offline
Anfänger
 
Registriert seit: Jun 2007
Beiträge: 4
SubSelect - Wie richtig?

Schönen Guten Tag Liebe User,

da ich in einem anderen Forum leider keine Antwort auf mein Problem
bekommen konnte (vll. wusste es keiner oder es kommen dort einfach
zu viele Themen auf, als dass User allen helfen könnten) - Auf jeden Fall
würde ich euch darum bitten, dass ihr einen Blick auf mein MySQL Problem
werft und vielleicht könnt ihr mir ja helfen - Wäre jedenfalls sehr nett von euch!

Das Grundprinzip ist erstmal - Ich erarbeite mir in meiner MySQL Abfrage zwei
Werte (Anzahl und Wertung) zu jeweils bestimmten ID's, sodass ich nachher also
eine Auflistung dessen haben möchte. Nun bin ich auf die SubSelects gestoßen,
weil ich die in MySQL errechneten Werte (Anzahl und Wertung) dividieren möchte.
Sprich möchte ich Wertung durch Anzahl dividieren, um den Durchschnitt dieser
Werte zu erreichen.

Sieht folgendermaßen aus:
1.Abfrage (Wäre sozusagen das übergeordnete Select, da ich ja hier schon die
Werte Anzahl und Wertung vorraussetze, die ich im SubSelect errechne ...
Zitat:
SELECT v.Nation, v.ID, Anzahl / Wertung AS Punkte
FROM WC_Spiele plan JOIN WC_Nationen v
ON plan.AID = v.ID OR plan.HID = v.ID
WHERE v.ID = plan.HID OR v.ID = plan.AID
GROUP BY Nation, ID
2.Abfrage (Hier errechne ich die Anzahl und auch die Wertung
zu jeder ID - Die ich gegenseitig dividieren wollen würde.)
Zitat:
SELECT v.Nation, v.ID, COUNT( v.Nation ) AS Anzahl,
SUM(
IF ( plan.HID = v.ID AND plan.LigaID =1,
IF ( plan.HTore > plan.ATore, 500,
IF ( plan.HTore < plan.ATore, 75, 200) ) ,

IF ( plan.AID = v.ID AND plan.LigaID =1,
IF ( plan.ATore > plan.HTore, 500,
IF ( plan.ATore < plan.HTore, 75, 200 ) ) , 0 ) )
) AS Wertung
FROM WC_Spiele plan JOIN WC_Nationen v
ON plan.AID = v.ID OR plan.HID = v.ID
WHERE v.ID = plan.HIDOR v.ID = plan.AID
Nun ist die Frage - Wie genau muss damit der SubSelect aussehen?
Ich habe bereits Versuche angestellt, doch leider endeten die alle
in einem Fehler (1064). Könntet ihr mir bitte sagen wie ich den SubSelect
machen muss und dann kurz erklären wieso ihr diese beiden Abfragen
"so und so" zusammengesetzt habt.

Würde mich auf jeden Fall sehr freuen, sodass ich schonmal
voraus einen ganz lieben Dank abgeben möchte!

Grüße,
Proteino
Mit Zitat antworten
  #2  
Alt 16.06.2007, 19:56:35
MatMel MatMel ist offline
Member
 
Registriert seit: Aug 2005
Beiträge: 644
MatMel eine Nachricht über ICQ schicken
AW: SubSelect - Wie richtig?

Zerpflücke doch das Unterselect in zwei Unterselects, bei denen jeweils nur ein einziger Wert SELECTIERT wird. Bsp:

Code:
=====  1 ======
SELECT 
SUM(
IF ( plan.HID = v.ID AND plan.LigaID =1,
IF ( plan.HTore > plan.ATore, 500,
IF ( plan.HTore < plan.ATore, 75, 200) ) ,

IF ( plan.AID = v.ID AND plan.LigaID =1,
IF ( plan.ATore > plan.HTore, 500,
IF ( plan.ATore < plan.HTore, 75, 200 ) ) , 0 ) )
) AS Wertung
FROM WC_Spiele plan JOIN WC_Nationen v
ON plan.AID = v.ID OR plan.HID = v.ID
WHERE v.ID = plan.HIDOR v.ID = plan.AID

======  2 =======

SELECT COUNT( v.Nation ) AS Anzahl,
FROM WC_Spiele plan JOIN WC_Nationen v
ON plan.AID = v.ID OR plan.HID = v.ID
WHERE v.ID = plan.HIDOR v.ID = plan.AID
Und dann setze die beiden SELECTS einfach in Klammern für dein Anzahl oder Wertung in dein Hauptselect.
Code:
SELECT v.Nation, v.ID, (hier das SELECT 2) / ( hier das SELECT 1) AS Punkte
FROM WC_Spiele plan JOIN WC_Nationen v
ON plan.AID = v.ID OR plan.HID = v.ID
WHERE v.ID = plan.HID OR v.ID = plan.AID
GROUP BY Nation, ID
Ich weiß nicht genau, ob es eine Möglichkeit gibt, auf mehrere Werte von einem Unterselect zuzugreifen, aber so wie oben müsste es jedenfalls klappen.


PS: Ich glaub das ist ein Wink des Schicksals ... ich lerne hier grad irgendwas über Proteine, hab keine Lust mehr und seh dann hier deinen Nick ;)


Nachtrag: Mir fällt grade auf, dass du die Division auch schon im Unterselect machen könntest. Dann sparst du dir nämlich ein SELECT:
Code:
SELECT 
( COUNT( v.Nation ) /
SUM(
IF ( plan.HID = v.ID AND plan.LigaID =1,
IF ( plan.HTore > plan.ATore, 500,
IF ( plan.HTore < plan.ATore, 75, 200) ) ,

IF ( plan.AID = v.ID AND plan.LigaID =1,
IF ( plan.ATore > plan.HTore, 500,
IF ( plan.ATore < plan.HTore, 75, 200 ) ) , 0 ) )
) ) AS Division
FROM WC_Spiele plan JOIN WC_Nationen v
ON plan.AID = v.ID OR plan.HID = v.ID
WHERE v.ID = plan.HIDOR v.ID = plan.AID

Geändert von MatMel (16.06.2007 um 19:59:43 Uhr)
Mit Zitat antworten
  #3  
Alt 17.06.2007, 12:43:10
Proteino Proteino ist offline
Anfänger
 
Registriert seit: Jun 2007
Beiträge: 4
AW: SubSelect - Wie richtig?

Naja, wenn sowas mal nicht Schicksal ist :) Aber ich wollte dir
wegen den Proteinen kein DejaVu Erlebnis vermitteln *gg*.

Und lieben Dank für deine Hilfe! Jetzt seh ich auch was ich die
ganze Zeit falsch gemacht habe, wobei ich mich wunder, wieso
dass woanders funktioniert hat ... ich hab nämlich den identischen
Ansatz gehabt, mit einer kleinen Änderung:

Ich hatte die Divisions Statements nicht nur mit einer Klammer
"umlegt", sondern zusätzlich noch "SUM" davor geschrieben.
Das war wohl ganze Zeit der Fehler den ich gemacht habe,
weshalb ich auch bei diesem simplen Ding eigentlich nicht
weitergekommen bin - Aber Vielen Dank nochmals :)!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
INSERT mit SubSelect? Indyk MySQLi/PDO/(MySQL) 6 05.02.2007 12:21:56
Query zum Feld leeren, richtig? Franzx MySQLi/PDO/(MySQL) 4 17.11.2006 10:15:26
ist das richtig ? selbstlerner MySQLi/PDO/(MySQL) 2 18.05.2006 14:03:40
session_encode in DB gespeichert - Daten richtig, auslesen aber falsch CThuy PHP für Fortgeschrittene und Experten 0 25.07.2004 01:38:34
Link nicht richtig bei Suchmaschinen Script Mutated! PHP für Fortgeschrittene und Experten 12 19.07.2004 20:49:11


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:31:45 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt