
Neue Beiträge
Gast
Registrieren
Login
Infos
Veranstaltungen
Studentenclubs
Wegweiser
Community Foren
Marktplatz
Partyfotos
User
Verein
Über uns
Mach mit!
|
[suche] klugen KopfmySQL-query
Hinweis
Offtopic und Spam wird ohne Hinweis gelöscht!Mahlzeit,
brauche mal einen klugen Kopf der mir bei einem Problem behilflich sein kann habe eine Tabelle, die Messwerte verschiedener Messtellen enthält also Messtellen_ID, timestamp, messwert brauche eine Datenbankabfrage die mir folgendes liefert: CODE Messtellen_ID(1) Messtellen_ID(2) timestamp messwert(1) messwert(2) Also ne Kreuztabelle.... idealerweise sollte man für jede messstellen_ID (einzeln!) den timestamp noch manipulieren können indem man Stunden addiert/subtrahiert Hinten dran müssen dann noch nen paar andere Joins und so gebaut werden ... Wenn jemand Interesse und know-how hat, dann gerne melden ... Ich stelle mal 2 Kisten bier bzw. das ganze als echtes Geld als Belohnung in Aussicht. Antworten(1 - 6)
versteh noch nicht so ganz was du eigentlich willst.. du willst jeweils 2 messwerte mit gleichen timestamp einer tabelle anzeigen? join condition a.timestamp = b.timestamp?
Dieser Beitrag wurde von aktsizr: 12 Mar 2011, 16:36 bearbeitet joar, ich bin halt nur zu pläd nen query zu bauen mit dem ich nen join auf die gleiche tabelle machen kann ...
ich brauch irgendwie das hier: select ('timestamp+$hier evetuelle manipulation') as 'timestamp', messwert as '$id1' from messwerte AS T1 where messstellen_id='$id1' select ('timestamp+$hier evetuelle manipulation')as 'timestamp', messwert as '$id2' from messwerte AS T2 where messstellen_id='$id2' ... $id3 .... ... $id4 .... .... ... $id_n .... das ganze mus ich irgendwie joinen aber ich bin zu doof dem server das zu erklären, dass mich seine drecks Fehlermeldungen nicht interessieren ... (Prozeduren und Views koennen nicht angelegt werden!) Das ganze muss ziemlich variabel gebaut werden, da die Abfrage später durch ein Programm generiert werden soll .... da hängen noch einige andere joins mit dran ... Ist das irgendwie verständlich? Dieser Beitrag wurde von bartman121: 12 Mar 2011, 16:50 bearbeitet mysql> select * from test;
+----+---------------------+-------+ | id | ts | value | +----+---------------------+-------+ | 1 | 2011-03-12 15:45:52 | 5 | | 2 | 2011-03-12 15:45:52 | 5 | | 3 | 2011-03-12 15:46:01 | 5 | | 4 | 2011-03-12 15:46:06 | 5 | | 5 | 2011-03-12 15:46:06 | 7 | | 6 | 2011-03-12 15:46:11 | 3 | | 7 | 2011-03-12 15:46:11 | 9 | | 8 | 2011-03-12 15:46:17 | 2 | | 9 | 2011-03-12 15:46:17 | 0 | +----+---------------------+-------+ 9 rows in set (0.00 sec) mysql> select a.ts as timestamp, a.value as 'messwert1', b.value as 'messwert2' from test a cross join test b on (a.ts = b.ts); +---------------------+-----------+-----------+ | timestamp | messwert1 | messwert2 | +---------------------+-----------+-----------+ | 2011-03-12 15:45:52 | 5 | 5 | | 2011-03-12 15:45:52 | 5 | 5 | | 2011-03-12 15:45:52 | 5 | 5 | | 2011-03-12 15:45:52 | 5 | 5 | | 2011-03-12 15:46:01 | 5 | 5 | | 2011-03-12 15:46:06 | 5 | 5 | | 2011-03-12 15:46:06 | 7 | 5 | | 2011-03-12 15:46:06 | 5 | 7 | | 2011-03-12 15:46:06 | 7 | 7 | | 2011-03-12 15:46:11 | 3 | 3 | | 2011-03-12 15:46:11 | 9 | 3 | | 2011-03-12 15:46:11 | 3 | 9 | | 2011-03-12 15:46:11 | 9 | 9 | | 2011-03-12 15:46:17 | 2 | 2 | | 2011-03-12 15:46:17 | 0 | 2 | | 2011-03-12 15:46:17 | 2 | 0 | | 2011-03-12 15:46:17 | 0 | 0 | +---------------------+-----------+-----------+ 17 rows in set (0.00 sec) mysql> select distinct a.ts as timestamp, a.value as 'messwert1', b.value as 'messwert2' from test a cross join test b on (a.ts = b.ts); +---------------------+-----------+-----------+ | timestamp | messwert1 | messwert2 | +---------------------+-----------+-----------+ | 2011-03-12 15:45:52 | 5 | 5 | | 2011-03-12 15:46:01 | 5 | 5 | | 2011-03-12 15:46:06 | 5 | 5 | | 2011-03-12 15:46:06 | 7 | 5 | | 2011-03-12 15:46:06 | 5 | 7 | | 2011-03-12 15:46:06 | 7 | 7 | | 2011-03-12 15:46:11 | 3 | 3 | | 2011-03-12 15:46:11 | 9 | 3 | | 2011-03-12 15:46:11 | 3 | 9 | | 2011-03-12 15:46:11 | 9 | 9 | | 2011-03-12 15:46:17 | 2 | 2 | | 2011-03-12 15:46:17 | 0 | 2 | | 2011-03-12 15:46:17 | 2 | 0 | | 2011-03-12 15:46:17 | 0 | 0 | +---------------------+-----------+-----------+ 14 rows in set (0.00 sec) mysql> select distinct a.ts as timestamp, a.value as 'messwert1', b.value as 'messwert2' from test a cross join test b on (a.ts = b.ts) where a.id <> b.id; +---------------------+-----------+-----------+ | timestamp | messwert1 | messwert2 | +---------------------+-----------+-----------+ | 2011-03-12 15:45:52 | 5 | 5 | | 2011-03-12 15:46:06 | 7 | 5 | | 2011-03-12 15:46:06 | 5 | 7 | | 2011-03-12 15:46:11 | 9 | 3 | | 2011-03-12 15:46:11 | 3 | 9 | | 2011-03-12 15:46:17 | 0 | 2 | | 2011-03-12 15:46:17 | 2 | 0 | +---------------------+-----------+-----------+ 7 rows in set (0.00 sec) So? Wobei das Distinct vielleicht mit etwas Vorsicht zu geniessen wäre. Außerdem hast du Informationsverlust, wenn es zu einer Timestamp keine andere Timestamp gibt. Wenn die trotzdem angezeigt werden sollen, muss ein OUTER JOIN verwendet werden. Dieser Beitrag wurde von aktsizr: 12 Mar 2011, 16:59 bearbeitet *staun*
![]() genau das ist die Lösung die ich brauchte.... da hängt jetzt noch einiges mit dran ... wenn du bereit bist mir das zeug alles zu bauen, was ich brauche (Erklärung sollte man persönlich machen), dann kriegste deine Belohnung aktsizr hat vorrang, wenn er nicht will, dann darf jemand anderes ![]() hmmmm... ich dachte ich krieg das bier nur für das (immernoch unzulängliche aber leicht zu fixende) sql an sich?
1 Nutzer liest/lesen dieses Thema (1 Gäste)
0 Mitglieder:
|