Zeile doppelt selektieren
hev
- datenbank
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?
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
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!
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
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