hev: Zeile doppelt selektieren

Hallo zusammen,
ich möchte in MySQL eine Zeile zwei mal selektieren bzw. verarbeiten.

Hier lieber mal ein Beispiel:

Tabelle TEST:
username
"paul"
"john"

Erwünschtes Ergebnis:
username
"paul-A"
"paul-B"
"john-A"
"john-B"

Hat jemand eine Idee, wie ich jede Zeile mehrfach verarbeiten kann?

  1. Hello,

    Hat jemand eine Idee, wie ich jede Zeile mehrfach verarbeiten kann?

    Mal so im Ansatz:
    SELECT CONCAT(name, '-A') AS namen
    FROM tabelle
    UNION
    SELECT CONCAT(name, '-B') AS namen
    FROM tabelle

    ...wobei das schon ein ziemlich ungewöhnliches Vorhaben ist...

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Wenn du die Nadel im Heuhaufen nicht findest, zünde den Heuhaufen an.
    1. Hello,

      Hat jemand eine Idee, wie ich jede Zeile mehrfach verarbeiten kann?
      Mal so im Ansatz:
      SELECT CONCAT(name, '-A') AS namen
      FROM tabelle
      UNION
      SELECT CONCAT(name, '-B') AS namen
      FROM tabelle

      ...wobei das schon ein ziemlich ungewöhnliches Vorhaben ist...

      MfG
      Rouven

      Musste ich auch noch nie vorher machen, daher kam ich ins grübeln.
      Aber danke, du bist gut, das ist genau das was ich brauchte!

      Letztendlich wird ein View erstellt, auf das später eine Authentifizierungssystem zugreift. Es müssen verschiedene "auth-strings" die sich aus verschiedenen tabellen ergeben bereitgestellt werden. Man hat dann mehrere möglichkeiten sich einzuloggen...

      Also danke!

      1. Hi,

        wenn du Spaltenwerte aus mehreren Tabellen miteinander (kreuzweise) kombinieren willst, dann kannst du dafür einen CROSS JOIN nehmen

          
        SELECT CONCAT(t1.name, t2.whateverfield) AS name  
        FROM tabelle t1  
        CROSS JOIN tabelle t2  
        
        

        Aber vorsicht, dass kann viele viele Datensätze erzeugen. ;)

        Cheers, Frank

  2. Hai Hev,

    ich möchte in MySQL eine Zeile zwei mal selektieren bzw. verarbeiten.
    Hat jemand eine Idee, wie ich jede Zeile mehrfach verarbeiten kann?

    klar:

    <?php  
    $query = "CREATE TEMPORARY TABLE IF NOT EXISTS test.help ( id int(4) NOT NULL auto_increment, var char(1) NOT NULL default '', PRIMARY KEY (id) )";  
    $ok = $DB->get_access($query);  
      
    $query = "INSERT INTO test.help (var) VALUES ('A'), ('B'), ('C'), ('D')";  
    $ok = $DB->get_access($query);  
      
    $query = "SELECT CONCAT(p.vnam, '-', h.var) AS Name FROM persons AS p LEFT JOIN help AS h ON h.id <= 2 WHERE YEAR(p.geb) = '1971' ORDER BY Name";  
    $ERG = $DB->get_data($query);  
    ?>
    

    In $ERG stehen die Namen mit dem gewuenschten Zusatz und in der angegebenen Reihenfolge.
    Wenn man das 'TEMPORARY' weglaesst, existiert 'help' ueber das Scriptende hinaus.

    HTH

    Gruss Norbert