Получить данные из другой таблицы
prntscr.com/dfxcw6
У меня есть таблица из которой я вывожу данные(на скрине правая)
У меня есть таблица из которой я вывожу данные(на скрине правая)
$q=$modx->newQuery('TicketComment');
$q->sortby('createdon', 'desc');
$q->select(array(
'id',
));
$q->prepare();
$q->stmt->execute();
$res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($res as $k=>$v) {
echo '<pre>';
print_r($v);
echo '</pre>';
}
и вторая таблица(на скрине левая) из которой я хочу получить данные из поля resource у правой таблицы совпадают thread из левой таблицы с id, как можно реализовать такое? и реально ли вообще? Комментарии: 8
да немогу разобраться блин с этими джоинами
$q->leftJoin('TicketThread', 'TicketThread',array('TicketComment.thread'=>'TicketThread.id'));
что не так?
в select укажите поля с алиасами таблиц
а так вроде все верно
а так вроде все верно
$q=$modx->newQuery('TicketComment');
$q->leftJoin('TicketThread', 'TicketThread',array('TicketComment.thread'=>'TicketThread.id'));
$q->sortby('createdon', 'desc');
$q->select(array(
'TicketComment.id',
));
$q->prepare();
$q->stmt->execute();
$res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($res as $k=>$v) {
echo '<pre>';
print_r($v);
echo '</pre>';
}
вот такое нифига не выводит
В sortby тоже алиасы нужны
Так вывод есть
$q=$modx->newQuery('TicketComment');
$q->leftJoin('TicketThread', 'TicketThread',array('TicketComment.thread'=>'TicketThread.id'));
// $q->leftJoin('TicketThread', 'thread', 'TicketComment.id = thread.id');
$q->sortby('TicketComment.createdon', 'desc');
$q->select(array(
'TicketComment.id',
'TicketComment.thread',
'TicketThread.resource'
));
$q->prepare();
$q->stmt->execute();
$res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($res as $k=>$v) {
echo '<pre>';
print_r($v);
echo '</pre>';
}
а как теперь вывести информацию из 2 таблицы? если выводить так то TicketThread.resource выводит пустоту
После
$q->prepare();
можно вывести запрос и посмотреть, что получаетсяecho $q->toSQL();
Вообщем надо так писать: $q->leftJoin('TicketThread', 'TicketThread',array('TicketThread.id = TicketComment.thread'));
Во второй строке у вас верно было.
ураааааааааааааа, спасибо вам за пол дня я наконец сделал это!!!
На спине татуировку сделаю с этим кодом
На спине татуировку сделаю с этим кодом
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.