• Как правильно сформулировать SQL запрос с учетом JOIN`ов?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Это одно соединение.
    Два:
    SELECT contracts.id, 
    c1.label AS 'vendor',
    c2.label AS 'purchaser', 
    contracts.label, contracts.amount, contracts.status, contracts.created, contracts.delivered 
    FROM contracts
    INNER JOIN companies AS c1 ON contracts.vendor = c1.id
    INNER JOIN companies AS c2 ON contracts.purchaser = c2.id
    WHERE contracts.id=15
    Ответ написан
    1 комментарий
  • Почему аналогичная реализация через LINQ запрос не работает?

    // Аналогично циклу с использованием Any
    return !Beads.Any(n => Vector3.Distance(n.position, pos) < 0.1f);
    // Можно с использованием All
    return Beads.All(n => !Vector3.Distance(n.position, pos) < 0.1f);


    В первом цикле возвращается false, если условие будет выполнено хотя бы раз. Any в этом случае вернёт true. Поэтому нужно применить инверсию. Также можно переписать операцию использую метод All.
    Ответ написан
    3 комментария
  • Куда делась проблема замыканий в C#?

    AlexanderYudakov
    @AlexanderYudakov
    C#, 1С, Android, TypeScript
    Начиная с C# версии 5.0, переменные, объявленные в "foreach", считаются внутренними переменными цикла. Т.е. замыкания здесь больше нет.

    https://m.habr.com/post/141270/
    Ответ написан
    1 комментарий
  • Как правильно использовать JOIN для выборки из нескольких таблиц данные + COUNT(*)?

    xpert13
    @xpert13
    Full Stack Developer
    Правильно делать так:
    В таблице boycotts добавить поля likes_count, dislikes_count, subscribtions_count и пересчитывать их значения каждый раз, когда будет добавляться или удалятся запись из соответствующей полю таблице.

    Плюсы:
    1. Нормальная выборка нужных вам данных
    2. Меньшая нагрузка при выборке данных (этот километровый джоин мало того, что не может решить вашу задачу вообще никак и вам нужно делать несколько отдельных селектов, так он еще будет прилично тормозить при большом количестве данных и/или больших нагрузках)
    3. В перспективе больше возможностей (вы сможете находить boycotts по количеству лайков, дизлайков, подписок)

    Минусы:
    1. Чуть больше телодвижений при создании/удалении лайков, дизлайков, подписке (на практике неощутимо)

    ---

    P.S. Чтобы колонка с результатами не называлась "COUNT(`likes`.`boycottid`)" используйте ключевое слово as и задавайте нужное вам название.
    Ответ написан
    Комментировать
  • Как правильно использовать JOIN для выборки из нескольких таблиц данные + COUNT(*)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SELECT `b`.`id`, `b`.`title`, `b`.`description`, `b`.`public`, 
      (SELECT COUNT(*) FROM `likes` WHERE `boycottid` = :boycot_id) AS `likes`,
      (SELECT COUNT(*) FROM `dislikes` WHERE `boycottid` = :boycot_id) AS `dislikes`,
      (SELECT COUNT(*) FROM `subscriptions` WHERE `boycottid` = :boycot_id) AS `subscriptions`
      FROM (
        SELECT `id`, `title`, `description`, `public` FROM `boycotts` WHERE `id` = :boycot_id
      ) AS `b`

    Но это только если нужно для конкретного id.
    Ответ написан
    2 комментария
  • Как лучше хранить временные данные?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вариант с мускулем не самый лучший, все же это не очень быстрое хранилище, не стоит выбирать технологию только из за того, что Вы с ней хорошо знакомы. Посмотрите в сторону Redis, он очень прост, имеет структуру key=>value, как мемкеш, но и есть ряд плюшек, например инкрементные поля, время жизни(ну это и меме есть) и еще немного разных бонусов. ОЧЕНЬ легко интегрируется, я за 15 минут написал свой адаптер, это вместе с чтением документации. Я думаю это то что вам нужно.
    Ответ написан
    2 комментария
  • Как поднять себе зарплату?

    sim3x
    @sim3x
    Хочешь больше зп?
    Найди новую работу

    АПД
    Теоретически, нужно поговорить с начальством. Да

    Только вот какой уровень переговорщика у тебя для таких разговоров должен быть - никто не знает.
    Если у тебя есть лояльность к текущему месту работы, то можешь попробовать
    После того как получишь предложение перейти на другую работу с повышением зп
    Тк исхода твоего разговора с текущим начальством тебе никто заранее не предскажет

    Даже теоретики в коментах

    АПД2
    У прохождения собеседования есть еще преимущества
    - ты получаешь подтверждение своей квалификации и необходимости тебя на рынке
    - ты получаешь денежный еквивалент своей ценности
    - ты получаешь повышение навыка прохождения собеседований - ето отдельный навык, который не часто пересекается с навыком программирование/разработка/администрирование/...
    - в случае провала собеседования у тебя нет никаких побочных еффектов
    - ты получаешь срез навыков необходимых рынку
    Ответ написан
    36 комментариев