У меня есть таблица A, в которой несколько значений столбцов должны быть заменены соответствующими идентификаторами, которые хранятся в таблице B, как в этой схеме:
TABLE_A
object_id desc_id_1 desc_id_2 desc_id_3 desc_id_4
zxy_34 9999 9567 5555 5556
TABLE_B
desc_id complete_desc
1234 ABCD
9999 ZYXW
9567 POTG
5555 YUNR
5556 LPVR
……..
……..
Финальное шоу, чем должно быть:
object comp_desc_1 comp_desc_2 comp_desc_3 comp_desc_4
zxy_34 ZYXW POTG YUNR LPVR
Возможно ли это?
На данный момент попробовал что-то подобное:
$sql="SELECT table_a.object_id, table_b.complete_desc
FROM table_a
LEFT JOIN table_b ON table_a.desc_id_1 =table_b.complete_desc";
Работает нормально, используя вывод таким образом:
echo "<table border='1'>
<tr>
<th>object</th>
<th>comp_desc_1 </th>
</tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['object_id '] . "</td>";
echo "<td>" . $row['desc_id_1 '] . "</td>";
echo "</tr>";
}
echo "</table>";
Проблема в том, что вы не знаете, как идти дальше.
При добавлении еще одного левого соединения остановите скрипт и загрузите пустую страницу:
$sql="SELECT table_a.object_id, table_b.complete_desc, table_b.complete_desc
FROM table_a
LEFT JOIN table_b ON table_a.desc_id_1 =table_b.complete_desc
LEFT JOIN table_b ON table_a.desc_id_2 =table_b.complete_desc ";
…..
echo "<table border='1'>
<tr>
<th>object</th>
<th>comp_desc_1 </th>
<th>comp_desc_2 </th>
</tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['object_id '] . "</td>";
echo "<td>" . $row['desc_id_1 '] . "</td>";
echo "<td>" . $row['desc_id_2'] . "</td>";
echo "</tr>";
}
echo "</table>";
Кто-нибудь может мне помочь?