Moin!
Das Problem ist, dass Du die eine Tabelle 2 Mal fragen musst. Das macht die Zuordnung von Aliasen notwendig.
Meine Lösung:
Tabelle pNamen:
CREATE TABLE IF NOT EXISTS `pNamen` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
INSERT INTO `pNamen` (`id`, `name`) VALUES
(1, 'Andrea'),
(2, 'Bernd'),
(3, 'Carmen'),
(4, 'Detlev');
Tabelle pPaare:
CREATE TABLE IF NOT EXISTS `pPaare` (
`p1` int(11) NOT NULL,
`p2` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `pPaare` (`p1`, `p2`) VALUES
(1, 2),
(1, 3),
(4, 2);
Abfrage:
SELECT
`p1`,
`p2`,
`PN1`.`name` as `Partner 1`,
`PN2`.`name` as `Partner 2`
FROM
`pPaare` as `PP1`,
`pNamen` as `PN1`,
`pNamen` as `PN2`
WHERE
`PN1`.`id`=`PP1`.`p1`
AND `PN2`.`id`=`PP1`.`p2`;
Ergebnis:
+----+----+-----------+-----------+
| p1 | p2 | Partner 1 | Partner 2 |
+----+----+-----------+-----------+
| 1 | 2 | Andrea | Bernd |
| 1 | 3 | Andrea | Carmen |
| 4 | 2 | Detlev | Bernd |
+----+----+-----------+-----------+
3 rows in set (0.00 sec)
(Du kannst p1, p2 auch aus dem Select weglassen.)
Jörg Reinholz