Данные из разных таблиц имеют одинаковое имя, как извлечь данные?

#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 ie table2.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";