Подстановка значени из таблицы sql
31 октября 2016, 18:34
Автор: lipkiy
Здравствуйте, смею задать вопрос..
Есть 2 таблицы SQL - mass и company
В company есть id, name....
В mass id, org......
В mass добавляются сообщения которые привязаны к компаниям (берутся из company.name)
Реализовано выпадающим списком, где вижу company.name а в поле подставляется company.id
после добавления сообщения, формирую список сообщений:
Где org - это id компании к которой относится сообщение.
Вот как мне вместо id (org) получить имя организации, которое будет сопоставляться с id из company и при совпадении подставлять name?
Думал в сторону join? но тогда трубуются уникальные имена столбцов или общие столбцы, а у меня id mass и id company не имеют ничего общего. Каждый из id просто несёт в себе номер записи.
Подставлял вместо id сразу название, которое хранилось непосредственно полным именем организации, но это ужас какой-то, а не решение..
А так же имею фильтр вывода по организациям в общем списке сообщений.
И в дальнейшем если организацию переименовать, то новые сообщения будут добавляться как новая организация и старые сообщения в фильтр не попадут...
В случае с id эта проблема уходит + экономия символов, соответственно прирост скорости отбора.
Есть 2 таблицы SQL - mass и company
В company есть id, name....
В mass id, org......
В mass добавляются сообщения которые привязаны к компаниям (берутся из company.name)
Реализовано выпадающим списком, где вижу company.name а в поле подставляется company.id
echo "<select name=\"morg\">";
$sql = "SELECT name, id FROM company";
$result_select = mysql_query($sql);
while($object = mysql_fetch_object($result_select)){
echo "<option value = '$object->id' > $object->name </option>";
}
echo "</select>";
$sql = "SELECT name, id FROM company";
$result_select = mysql_query($sql);
while($object = mysql_fetch_object($result_select)){
echo "<option value = '$object->id' > $object->name </option>";
}
echo "</select>";
после добавления сообщения, формирую список сообщений:
$query = "SELECT id, data, org, wks, hour, job, mass FROM mass";
$res = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($res)) {
echo "<tr>\n";
echo "<td>".$row['id']."</td>\n";
echo "<td>".$row['data']."</td>\n";
echo "<td>".$row['org']."</td>\n";
echo "<td>".$row['wks']."</td>\n";
echo "<td>".$row['hour']."</td>\n";
echo "<td width=\"40%\">".$row['job']."</td>\n";
echo "<td width=\"40%\">".$row['mass']."</td>\n</tr>\n";
}
echo ("</table>\n");
$res = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($res)) {
echo "<tr>\n";
echo "<td>".$row['id']."</td>\n";
echo "<td>".$row['data']."</td>\n";
echo "<td>".$row['org']."</td>\n";
echo "<td>".$row['wks']."</td>\n";
echo "<td>".$row['hour']."</td>\n";
echo "<td width=\"40%\">".$row['job']."</td>\n";
echo "<td width=\"40%\">".$row['mass']."</td>\n</tr>\n";
}
echo ("</table>\n");
Где org - это id компании к которой относится сообщение.
Вот как мне вместо id (org) получить имя организации, которое будет сопоставляться с id из company и при совпадении подставлять name?
Думал в сторону join? но тогда трубуются уникальные имена столбцов или общие столбцы, а у меня id mass и id company не имеют ничего общего. Каждый из id просто несёт в себе номер записи.
Подставлял вместо id сразу название, которое хранилось непосредственно полным именем организации, но это ужас какой-то, а не решение..
А так же имею фильтр вывода по организациям в общем списке сообщений.
И в дальнейшем если организацию переименовать, то новые сообщения будут добавляться как новая организация и старые сообщения в фильтр не попадут...
В случае с id эта проблема уходит + экономия символов, соответственно прирост скорости отбора.