#php #sql #odbc
#php #sql #odbc
Вопрос:
Вот мой код:
$sql = "SELECT table1.Insert_ID, table1.Type, table1.Date "
. "table2.User, table2.Date "
. "FROM Insert AS table1 "
. "INNER JOIN Contact AS table2 ON table2.Contact_ID = table1.Contact_ID";
$x =0;
while($row = odbc_fetch_array($res)){
$x ;
$values= ($x . ": " . " Insert ID:". $row['Insert ID'] . " Date Created: " . $row['Date'] . " Date Modified:" . "n");
print($values);
}
Мне нужна дата как из table1, так и из table2, как мне продолжить извлечение данных, если они оба имеют одинаковое имя?
Комментарии:
1. одно и то же имя мало что значит. таблицы должны быть как-то связаны (например, возможна связь с внешним ключом), поэтому вы можете использовать
JOIN
запрос. В противном случае вам придется запускать два отдельных запроса или, возможно, один запрос сUNION
. Но поскольку вы не предоставили никаких подробностей о структуре, кроме «того же имени», мы действительно не можем вам помочь.2. вы можете использовать
AS
ietable2.Date AS Date2
3. Почему я не предоставил достаточно информации? Прямо сейчас я хотел бы использовать $row[‘Date’], но поскольку две таблицы имеют одинаковое имя Date, я не могу указать, какую из них я хочу.
Ответ №1:
Используйте псевдоним.
SELECT table1.Insert_ID, table1.Type, table1.Date as Date1 "
. "table2.User, table2.Date as Date2 "
. "FROM Insert AS table1 "
. "INNER JOIN Contact AS table2 ON table2.Contact_ID = table1.Contact_ID";
Ответ №2:
Псевдонимы столбцов.
$sql = "SELECT table1.Insert_ID, table1.Type, table1.Date as T1Date "
. "table2.User, table2.Date as T2Date"
. "FROM Insert AS table1 "
. "INNER JOIN Contact AS table2 ON table2.Contact_ID = table1.Contact_ID";