MySQL запрос не работает для меня Codeigniter Php

$_GET['start_date'] не является числовой, это моя ставка, но формат даты не поддерживается strtotime. Вам нужно будет переформатировать дату в рабочий формат для strtotime или использовать комбинацию explode / mktime .

Я мог бы добавить вам пример, если вы будете достаточно любезны, чтобы опубликовать формат, который вы в настоящее время получаете.

4
задан marc_s 31 March 2019 в 18:45
поделиться

2 ответа

Попробуйте этот код:

$this->db->select('A.*,B.type');
$this->db->from('A');
$this->db->join('B', 'B.doctor_id = A.id');
$query = $this->db->get();
0
ответ дан Sultan 31 March 2019 в 18:45
поделиться

Похоже, вы ищете условную агрегацию.

В чистом SQL запрос должен выглядеть следующим образом:

SELECT
    A.id,
    A.name,
    SUM(CASE WHEN B.type = 'Nuter' THEN 1 ELSE 0 END) as Nuter,
    SUM(CASE WHEN B.type = 'Spay' THEN 1 ELSE 0 END) as Spay
FROM A
INNER JOIN B ON B.doctor_id = A.id
GROUP BY A.id, A.name

Если между таблицами A и B имеется отношение 1-1, а не 1-N (как показывают ваши данные), можно упростить как:

SELECT
    A.id,
    A.name,
    CASE WHEN B.type = 'Nuter' THEN 1 ELSE 0 END as Nuter,
    CASE WHEN B.type = 'Spay' THEN 1 ELSE 0 END as Spay
FROM A
INNER JOIN B ON B.doctor_id = A.id

Попробуйте:

$this->db->select(
    "A.id,
    A.name,
    CASE WHEN B.type = 'Nuter' THEN 1 ELSE 0 END as Nuter,
    CASE WHEN B.type = 'Spay' THEN 1 ELSE 0 END as Spay"
);
$this->db->from('A');
$this->db->join('B', 'B.doctor_id = A.id');
$query = $this->db->get();
0
ответ дан GMB 31 March 2019 в 18:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: