|
Community
Szene & News
Locations
Impressum
|
Forum / Bits und Bytes
PHP/Mysql-Problems...

uwebaier - 36
Halbprofi
(offline)
Dabei seit 06.2005
124
Beiträge
|
|
Geschrieben am: 23.12.2007 um 19:01 Uhr
|
|
Also folgendes:
Ich habe eine Tabelle A und eine Tabelle B
bei einem eintrag in Tabelle A sind 2 "Verknüpfungen" zu 2 Einträgen in Tabelle B.
Das Problem ist das Ich nach etwas sortieren will was nur im ersten Eintrag von Tabelle B steht, und ich will nach Möglichkeit keine gemeinsame Sortiereigenschaft um "Platz zu sparen" ^^
Vielleicht hilft es auch dem einen oder anderen das ganze Bildlich darzustellen:
UT3 Sucks ^^
|
|
silver-cloud - 39
Halbprofi
(offline)
Dabei seit 07.2005
312
Beiträge
|
Geschrieben am: 23.12.2007 um 21:31 Uhr
Zuletzt editiert am: 23.12.2007 um 21:32 Uhr
|
|
Wie wäre es mit einem konkreten Beispiel für Datensätze ^^
Ich finde es sehr schwer nachzuvollziehen was du meinst.
Du sollst nur soviel Zeit in eine Antwort verschwenden, wie der Anfragende in seinem Startpost.
|
|
oO-Chris-Oo - 32
Fortgeschrittener
(offline)
Dabei seit 09.2007
34
Beiträge
|
|
Geschrieben am: 23.12.2007 um 22:21 Uhr
|
|
ich auch^^^
|
|
McPommes - 51
Experte
(offline)
Dabei seit 09.2006
1422
Beiträge
|
|
Geschrieben am: 23.12.2007 um 23:10 Uhr
|
|
Ich habs versucht zu verstehen, aber ohne Erfolg.
> was nur im ersten Eintrag von Tabelle B steht
Wie definiert sich der "erste Eintrag"? Du kannst nicht davon ausgehen dass du Datensätze in der Reihenfolge zurückbekommst, in der sie eingetragen werden. Da brauchst du immer ein Sortierkriterium.
Das mit dem Beispiel wäre wirklich sinnvoll.
Um wie viele Datensätze handelt es sich denn? Platz sparen ist ok, aber man darf es bei Datenbanken nicht übertreiben.
*** diese Fusszeile verschwendet 45 Bytes ***
|
|
uwebaier - 36
Halbprofi
(offline)
Dabei seit 06.2005
124
Beiträge
|
|
Geschrieben am: 24.12.2007 um 16:01 Uhr
|
|
Also gut, schon mal schön den guten Ansatz mancher Leute zu sehen ^^
Tabelle A:
Zitat:
Name: Wasweisich
Spalten: ID_Eintrag 1
ID_Eintrag 2
Tabelle B:
Zitat:
Name: Eintraege
Spalten: ID
Daten
Erstelldatum
Query:
Zitat:
SELECT
Daten as Eintrag1_Daten
Erstelldatum as Eintrag1_Erstelldatum
Daten as Eintrag2_Daten
Erstelldatum as Eintrag2_Erstelldatum
FROM
Wasweisich
WHERE
Wasweisich.ID_Eintrag1=Eintraege.ID
AND
Wasweisich.ID_Eintrag2=Eintraege.ID
//Hier das Problem
SORT BY
Wasweisich.Erstelldatum DESC
Problematik:
Schicke ich ein Query (wie oben)vertauscht SQL evtl. die Daten,
schicke ich 2 Query um jeweils die Einträge zu bekommen kann ich nicht mehr sortieren...
Erklären ist nicht gerade meine Stärke, also hoffe ich natürlich das Problem anhand dieses Beispiels dargestellt zu haben...
Und natürlich an alle Fröhliche Weihnachten xD
UT3 Sucks ^^
|
|
McPommes - 51
Experte
(offline)
Dabei seit 09.2006
1422
Beiträge
|
|
Geschrieben am: 24.12.2007 um 16:34 Uhr
|
|
Hm...
Die Query ist noch nicht ausführbar, das weißt du sicher.
Du musst "wasweißich" zweimal aufführen, weil du zwei verschiedene Einträge aus dieser Tabelle in einer Zeile miteinander verknüpft haben willst.
Kannst du JOIN verwenden? Wär schöner zu lesen.
Der Tabelle "wasweißich" musst du dann bei jedem mal einen extra Namen geben, dann kannst du mit diesem Namen auch aussuchen, welches Datum zum sortieren verwendet werden soll.
Etwa so
SELECT * FROM Wasweißich W1
INNER JOIN Eintraege E ON E.id1 = W1.id
INNER JOIN Wasweißich W2 ON W2.id = E.id2
ORDER BY W1.Datum (oder halt W2.Datum)
Oder hab ich das immer noch nicht kapiert? Dann mach mal ein Beispiel mit sinnvollen Daten, wo man erst mal ohne SQL nachvollziehen kann was du haben willst.
> Und natürlich an alle Fröhliche Weihnachten xD
Das natürlich auch 
*** diese Fusszeile verschwendet 45 Bytes ***
|
|
uwebaier - 36
Halbprofi
(offline)
Dabei seit 06.2005
124
Beiträge
|
|
Geschrieben am: 24.12.2007 um 16:43 Uhr
|
|
Ne, aber ich glaub ich muss mir mal Joins anschaun, die sind mir Neuland xD
Aber schon ma danke für den Tipp das es so was überhaupt gibt =)
UT3 Sucks ^^
|
|
uwebaier - 36
Halbprofi
(offline)
Dabei seit 06.2005
124
Beiträge
|
Geschrieben am: 24.12.2007 um 17:02 Uhr
Zuletzt editiert am: 24.12.2007 um 17:07 Uhr
|
|
OK, Laut meiner Logik Problem gelöst...
ABER:
Ich darf jemanden bitten in diesem Query den Syntaxfehler bei COUNT(*) zu finden...
SELECT
threads.closed,
threads.pinned,
section.section,
section.name,
section.categorie,
user_first.ID as createrID,
user_first.nick as creater,
post_first.createDate,
user_last.ID as lasteditorID,
user_last.nick as lasteditor,
post_last.createDate as lastedit,
posts.COUNT(*) as postcount
FROM
threads,
section,
users as user_first,
users as user_last,
posts as post_first,
posts as post_last,
posts
WHERE
threads.section='home'
AND
section.section=threads.thread
AND
post_first.ID=threads.firstpost
AND
user_first.ID=post_first.creater
AND
post_first.ID=threads.lastpost
AND
user_last.ID=post_last.creater
AND
threads.thread=posts.section
SORT BY
post_last.createdate DESC
LIMIT
0, 15;
Den Error gibts natürlich auch...
Zitat:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) as postcount FROM threads, section, use' at line 13
Fehlercode:1064
1 Fehler gefunden =)
Heißt ORDER BY und nicht SORT BY xD
Aber der andere is immer noch da
UT3 Sucks ^^
|
|
Blizz - 38
Halbprofi
(offline)
Dabei seit 08.2003
268
Beiträge
|
|
Geschrieben am: 24.12.2007 um 19:51 Uhr
|
|
Zitat von uwebaier: OK, Laut meiner Logik Problem gelöst...
ABER:
Ich darf jemanden bitten in diesem Query den Syntaxfehler bei COUNT(*) zu finden...
SELECT
threads.closed,
threads.pinned,
section.section,
section.name,
section.categorie,
user_first.ID as createrID,
user_first.nick as creater,
post_first.createDate,
user_last.ID as lasteditorID,
user_last.nick as lasteditor,
post_last.createDate as lastedit,
posts.COUNT(*) as postcount
FROM
threads,
section,
users as user_first,
users as user_last,
posts as post_first,
posts as post_last,
posts
WHERE
threads.section='home'
AND
section.section=threads.thread
AND
post_first.ID=threads.firstpost
AND
user_first.ID=post_first.creater
AND
post_first.ID=threads.lastpost
AND
user_last.ID=post_last.creater
AND
threads.thread=posts.section
SORT BY
post_last.createdate DESC
LIMIT
0, 15;
Den Error gibts natürlich auch...
Zitat:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) as postcount FROM threads, section, use' at line 13
Fehlercode:1064
1 Fehler gefunden =)
Heißt ORDER BY und nicht SORT BY xD
Aber der andere is immer noch da
....
COUNT(post.*) as postcount
...
wobei du natürlich auch count nach ide machen ..
|
|
uwebaier - 36
Halbprofi
(offline)
Dabei seit 06.2005
124
Beiträge
|
|
Geschrieben am: 24.12.2007 um 21:25 Uhr
|
|
Ich seh schon, hier bin ich an fähige Leute gekommen...
Aber gut, das solls mal fürs erste gewesen sein...
Danke an alle, Close plz
UT3 Sucks ^^
|
|
Forum / Bits und Bytes
|