В настоящее время я столкнулся с проблемой попыток получить значение, когда я присоединился к двум таблицам со столбцами с одинаковым именем, например: table1.date и table2.date (дата в каждой таблице различна), как бы получить «дату», таблицы 1 в этом случае. Я в настоящее время работает
while($row = $mysqliquery->fetch_object()) {
есть ли способ, которым я мог бы использовать какой-либо синтаксис для получения даты из таблицы 1 в следующем коде
$row->date eg $row->table1.date or something
Если не так, как еще я смогу это сделать? Благодарю.
Вы должны различать два столбца с одинаковым именем, используя псевдоним для одного или обоих из двух столбцов в запросе, например
SELECT a.`date`, b.`date` as b_date FROM table1 a JOIN table2 b ON a.id = b.a_id WHERE some specific criteria
Теперь, когда вы получаете ROW, каждая date
имеет свое собственное уникальное имя, т.е.
$row->date; $row->b_date;
Я думал больше об этом (фиктивном) псевдо sql
select a.`account_id`, a.`date` as 'account_date', u.`date` as 'signup_date' from `accounts` a left outer join `users` u on u.`uid`=a.`uid`
Каждая таблица имеет столбец с именем date
но в sql каждый из них ссылается на уникальный псевдоним. У вас не может быть двух столбцов в одном запросе с тем же именем или вы получите ошибки, поэтому вы дадите им псевдоним. Таблицы также сглажены в этом коде – это действительно помогает упростить вещи, на мой взгляд … Во всяком случае, просто быстрый пример, чтобы проиллюстрировать, как вы можете подходить к этому – у других может быть другой подход, из которого я мог бы узнать новые трюки