• Как в одном SQL запросе вывести идентификаторы клиентов, у которых нет счёта?

    @zaur45
    SELECT
        coalesce(contact.client_id, Dep.client) AS client_id
    FROM 
        contact
        FULL JOIN Dep ON contact.client_id = Dep.client
    WHERE
        contact.client_id is null
        or Dep.client is null
    GROUP BY
        coalesce(contact.client_id, Dep.client)
    Ответ написан
    Комментировать
  • Как работает git pull?

    @zaur45
    1. Давайте разберёмся с терминологией. "Запушил локально" это, как я понимаю, git add + git commit. Обе эти команды работают с локальным репозиторием. После их выполнения в нём появится ещё один коммит, локальный репозиторий будет опережать удалённый (remote). Состояние удалённого репозитория не изменится.

    git pull это git fetch + git merge. Первая команда забирает с удалённого репозитория его текущее состояние, не меняя файлов рабочей папки, вторая пытается слить изменения удалённого и локального репозиториев. Поскольку после "git add + git commit" локальный репозиторий опережает удалённый на один коммит, никаких изменений локально не произошло.

    2. После того, как в параллельном репозитории был создан файл, последовательность комманд, как я понимаю, была такая: git add, git commit, git push. git add + git commit создали ещё один коммит локально, git push отправил два коммита в удалённый репозиторий: первый был создан локально на шаге 1 и скопировался вместе с репозиторием, второй мы создали только что. Теперь у локального репозитория 2 и удалённого репозитория одинаковая история коммитов, локальный репозиторий 1 отстаёт от удалённого на один коммит. При выполнении git pull в репозитории 1 он "догонит" удалённый репозиторий и в нём появится новый файл.

    Для изучения git рекомендую ресурс https://learngitbranching.js.org/?locale=ru_RU -- там в простой форме научат пониманию основных команд с иллюстрацией того что именно они делают.
    Ответ написан
    Комментировать
  • Как посчитать сколько записей по месяцам?

    @zaur45
    Не уверен именно за mysql, но я бы написал так. Мне кажется не очень хорошей идеей использовать зарезервированные слова count и month в качестве имени полей, но написал как попросили (-:

    SELECT
        user_id,
        COUNT(1) as count,
        MONTH(FROM_UNIXTIME(created_at)) as month
    FROM
        my_table
    GROUP BY
        user_id,
        MONTH(FROM_UNIXTIME(created_at))
    Ответ написан
    1 комментарий