SELECT über zwei gleiche Tabellen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SELECT über zwei gleiche Tabellen

    Hi Zusammen,

    ich habe zwei gleiche Tabellen, allerdings mit unterschiedlichen Datensätzen. In der einen Tabelle sind aktuelle Artikel und in der anderen alte Artikel. Aus beiden Tabellen würde ich gerne alle Datensätze sortiert ausgeben. Ein JOIN ist denke ich unsinnig, da die Tabellen nicht verknüpft werden müssen.
    Code der Tabelle: (bei beiden gleich, jeweils nur der name unterschiedlich)
    Code:
    CREATE TABLE `article` (
      `id` int(4) NOT NULL auto_increment,
      `meta_kat` text NOT NULL,
      `timestamp1` datetime default NULL,
      `timestamp2` datetime default NULL,
      `cont_autor` text,
      `cont_title` text,
      `cont_reisser` mediumtext,
      `cont_text` longtext,
      `cont_quelle` text,
      `meta_ip1` text,
      `meta_ip2` text,
      PRIMARY KEY  (`id`,`id`),
      FULLTEXT KEY `cont_title` (`cont_title`),
      FULLTEXT KEY `cont_text` (`cont_text`),
      FULLTEXT KEY `cont_reisser` (`cont_reisser`),
      FULLTEXT KEY `fulltext_index` (`cont_text`,`cont_reisser`,`cont_title`)
    ) TYPE=MyISAM COMMENT='News Archiv';
    meine SQL Abfrage sieht in etwa so aus:
    PHP-Code:
    $sql ="SELECT archive.*, article.* FROM archive, article 
    WHERE (timestamp1 like '2004-05-% %:%:%') AND 
    (MATCH (cont_text, cont_reisser, cont_title) AGAINST ('Wort')) 
    AND (meta_kat like 'news' OR meta_kat like 'events' OR meta_kat like 'wit_wis') 
    ORDER BY timestamp1 DESC LIMIT 0, 20"

    Leider erhalte ich aber immer folgenden Fehler:
    Column: 'timestamp1' in where clause is ambiguous
    Ich hoffe ihr habt eine Ide wie das funktionieren könnte

  • #2
    Du fragst 2 Tabellen ab, und in beiden gibt es das Feld timestamp1. Du musst der Datenbank aber noch sagen, für welches timestamp1 (aus der einen oder aus der anderen Tabelle) deine Where-Bedingung gelten soll (archive.timestamp1 oder / und article.timestamp1). Analog dazu musst du alle anderen Felder ebenfalls anpassen.
    hopka.net!

    Kommentar


    • #3
      danke für den tipp, werd ich gleich mal ausprobieren

      Kommentar


      • #4
        MySQL >= 4.0.0?

        (select * from article)
        union
        (select * from archive)
        order by timestamp1 desc limit 0, 20
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar

        Lädt...
        X