phpbar.de logo

Mailinglisten-Archive

Select-Ergebnisse

Select-Ergebnisse

Robert Pleniger pleniger at rpdev.at
Don Feb 17 21:45:38 CET 2005


Hallo Benedikt

Am Thu, 17 Feb 2005 15:55:01 +0100 schrieb Benedikt Quirmbach <benedikt at quirmbach.de>:

> Hallo,
>
> mit einer Select-Abfrage durchsuche ich mehrere Tabellen gleichzeitig:
>
> (SELECT name AS text_1, width AS text_2, '0' AS text_3, datum, aktiv,
> 'Anzeigentyp' AS 'table' FROM typ WHERE NOW()-datum<1000000) UNION ALL
> (SELECT text AS text_1, '0' AS text_2, '0' AS text_3, datum, aktiv,
> 'Headline' AS 'table' FROM headlines WHERE NOW()-datum<1000000) UNION
> ALL (SELECT text_1 AS text_1, text_2 AS text_2, text_3 AS text_3,
> datum, aktiv, 'Textbausteine' AS 'table' FROM texte WHERE
> NOW()-datum<1000000) UNION ALL (SELECT line AS text_1, '0' AS text_2,
> '0' AS text_3, datum, aktiv, 'Hotline' AS 'table' FROM hotline WHERE
> NOW()-datum<1000000) UNION ALL (SELECT text AS text_1, '0' AS text_2,
> '0' AS text_3, datum, aktiv, 'Internet' AS 'table' FROM internet WHERE
> NOW()-datum<1000000) UNION ALL (SELECT text_1 AS text_1, text_2 AS
> text_2, text_3 AS text_3, datum, aktiv, 'Aktionstexte' AS 'table' FROM
> aktion WHERE NOW()-datum<1000000) UNION ALL (SELECT name AS text_1, '0'
> AS text_2, '0' AS text_3, datum, aktiv, 'Bild' AS 'table' FROM bild
> WHERE NOW()-datum<1000000) ORDER BY datum desc, aktiv desc
>
> Es sollen also in diesen Tabellen alle Einträge gefunden werden, die
> sich in letzter Zeit geändert haben. Da diese Tabellen unterschiedliche
> Felder und Feldlängen haben, habe ich eine "Quasi"-Tabelle in der
> Abfrage aufgebaut: "name AS text_1, width AS text_2, '0' AS text_3".
> Dabei werden alle Felder, in denen kein Ergebnis zu erwarten ist auf
> "0" gesetzt.
>
> Die Abfrage tut das, was sie soll, aber ...
>
> .... die Feldlängen in der Ergebnistabelle werden von der Länge des
> ersten gefundenen Eintrages bestimmt. Ist also z.B. der erste gefundene
> Text_1 ein String mit 3 Zeichen, haben alle folgenden Text_1 auch nur 3
> Zeichen. In Wirklichkeit ist das aber natürlich nicht so, sondern die
> Ergebnisse werden einfach abgeschnitten.
>
> Was kann ich da tun?

Wenn Dich die Leerzeichen nicht stören kannst Du RPAD(name, $GrößteLänge, ' ') AS text_1 probieren.

>
> BTW:
> "... WHERE NOW()-datum<1000000" ist - glaube ich - nicht ganz richtig.
> Es sollen die letzten 10 Tage sein. Wie heißt das richtig?

WHERE SUBDATE(CURRENT_DATE, INTERVAL 10 DAY) <= datum

>
> Benedikt
>


Robert Pleniger

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive