Hallo,
ich versuche zwei Tabellen über ein Join abzufragen, leider gelingt mir das nur bedingt.
Hier mal die Infos zu den Tabellen:
Tabelle 1: x_users mit "id, name, username, email"
Tabelle 2: x_fields_values mit "field_id, item_id, value"
Die Felder x_users.id und x_fields_values.item_id sind die die IDs der User, über die die Abfrage generiert wird.
x_fields_value.field_id kann die Werte 1-17, wobei die die x_fields_value.value dann z.B. Vorname, Strasse, etc hat
Hier ein Beispiel:
Tabelle 1:
id name username email
1 Müller mueller mueller@gmx.de
2 Schmidt schmidt schmidt@gmx.de
Tabelle 2:
field_id item_id value
12 1 Peter
13 1 Musterstrasse
1 1 089-12345678
12 2 Monika
13 2 Ortgasse
1 2 089-9876543
Die Abfrage mache ich über:
$sql = 'SELECT * FROM x_users INNER JOIN x_fields_values ON (x_users.id = x_fields_values.item_id) ORDER BY x_users.username ASC';
und lasse mir dann in einer Tabelle die Ergenisse anzeigen:
echo '<table border="1">';
while ($row = $erg->fetch_assoc()) {
// echo '"'.$row['id'].'" "'.$row['name'].'" "'.$row['username'].'" "'.$row['email']."\"<br />\n";
echo "<tr>";
echo "<td>". $row['id'] . "</td>";
echo "<td>". $row['name'] . "</td>";
echo "<td>". $row['username'] . "</td>";
echo "<td>". $row['email'] . "</td>";
echo "<td>". $row['value'] . "</td>";
echo "</tr>";
}
echo "</table>";
Das bewirkt aber, dass die Tabelle wir folgt aussieht:
1 Müller mueller mueller@gmx.de Peter
1 Müller mueller mueller@gmx.de Musterstrasse
1 Müller mueller mueller@gmx.de 089-12345678
2 Schmidt schmidt schmidt@gmx.de Monika
2 Schmidt schmidt schmidt@gmx.de Monika
2 Schmidt schmidt schmidt@gmx.de 089-9876543
Ich hätte aber gerne:
1 Müller mueller mueller@gmx.de Peter Musterstrasse 089-12345678
2 Schmidt schmidt schmidt@gmx.de Monika Ortgasse 089-9876543
Bin für jeden Tipp dankbar.
VG
rs
ich versuche zwei Tabellen über ein Join abzufragen, leider gelingt mir das nur bedingt.
Hier mal die Infos zu den Tabellen:
Tabelle 1: x_users mit "id, name, username, email"
Tabelle 2: x_fields_values mit "field_id, item_id, value"
Die Felder x_users.id und x_fields_values.item_id sind die die IDs der User, über die die Abfrage generiert wird.
x_fields_value.field_id kann die Werte 1-17, wobei die die x_fields_value.value dann z.B. Vorname, Strasse, etc hat
Hier ein Beispiel:
Tabelle 1:
id name username email
1 Müller mueller mueller@gmx.de
2 Schmidt schmidt schmidt@gmx.de
Tabelle 2:
field_id item_id value
12 1 Peter
13 1 Musterstrasse
1 1 089-12345678
12 2 Monika
13 2 Ortgasse
1 2 089-9876543
Die Abfrage mache ich über:
$sql = 'SELECT * FROM x_users INNER JOIN x_fields_values ON (x_users.id = x_fields_values.item_id) ORDER BY x_users.username ASC';
und lasse mir dann in einer Tabelle die Ergenisse anzeigen:
echo '<table border="1">';
while ($row = $erg->fetch_assoc()) {
// echo '"'.$row['id'].'" "'.$row['name'].'" "'.$row['username'].'" "'.$row['email']."\"<br />\n";
echo "<tr>";
echo "<td>". $row['id'] . "</td>";
echo "<td>". $row['name'] . "</td>";
echo "<td>". $row['username'] . "</td>";
echo "<td>". $row['email'] . "</td>";
echo "<td>". $row['value'] . "</td>";
echo "</tr>";
}
echo "</table>";
Das bewirkt aber, dass die Tabelle wir folgt aussieht:
1 Müller mueller mueller@gmx.de Peter
1 Müller mueller mueller@gmx.de Musterstrasse
1 Müller mueller mueller@gmx.de 089-12345678
2 Schmidt schmidt schmidt@gmx.de Monika
2 Schmidt schmidt schmidt@gmx.de Monika
2 Schmidt schmidt schmidt@gmx.de 089-9876543
Ich hätte aber gerne:
1 Müller mueller mueller@gmx.de Peter Musterstrasse 089-12345678
2 Schmidt schmidt schmidt@gmx.de Monika Ortgasse 089-9876543
Bin für jeden Tipp dankbar.
VG
rs