דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. Sequelize מיון לפי נתוני טבלה אחרת

Sequelize מיון לפי נתוני טבלה אחרת

מתוזמן נעוץ נעול הועבר תכנות
3 פוסטים 2 כותבים 100 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • י מנותק
    י מנותק
    יוסף בן שמעון
    כתב ב נערך לאחרונה על ידי
    #1

    יש לי טבלה של כרטיסים Tickets, וטבלה של לוגים Log
    כל פעם שמשתמש פותח כרטיס, זה נרשם ללוג.
    אני רוצה לחפש את הכרטיסים שלא פתחו אותם בכלל, או שפתחו הכי קצת, בשאילתה Mysql הייתי כותב כך:

        SELECT *, ( SELECT COUNT(*) FROM Log WHERE Log.TicketId = Tickets.ID ) AS openCount
        FROM Tickets 
        ORDER BY openCount;
    

    השאלה איך אני עושה את זה בSequelize, יש לי ענין מיוחד לעשות את זה דוקא שם בגלל תנאים מורכבים שכבר בנויים בו.
    הכיוון שניסיתי הוא בערך כך:

    TicketsModel.findAll({
            include: [
                {
                    model: Log,
                    as: 'Log',
                    attributes: [
                        [Sequelize.fn('COUNT'), 'openCount']
                    ]
                }
            ],
            order: ['openCount']
        })
    

    אבל זה כמובן לא תקין, לא מצאתי תיעוד איך אפשר לעשות תת שאילתה בתוך השאילתה הראשית.
    האם זה אפשרי?

    dovidD תגובה 1 תגובה אחרונה
    0
    • dovidD מחובר
      dovidD מחובר
      dovid ניהול
      השיב ליוסף בן שמעון ב נערך לאחרונה על ידי dovid
      #2

      @יוסף-בן-שמעון
      בשביל לא נפתחו כלל הייתי כותב left join עם where is null.
      אולי זה מקבילה נכונה בsequlize
      https://stackoverflow.com/questions/43122077/left-excluding-join-in-sequelize
      בשביל מיון לפי ספירת הבנים גם לא הייתי עושה תת שאילתה בSQL אלא groupby עם count, אני רואה את זה
      https://stackoverflow.com/a/37817966/1271037
      בשביל לכלול בספירה כאלה עם 0 צריך left join שזה אומר בsequelize להגדיר require לfalse.

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      י תגובה 1 תגובה אחרונה
      4
      • י מנותק
        י מנותק
        יוסף בן שמעון
        השיב לdovid ב נערך לאחרונה על ידי
        #3

        @dovid תודה!
        רק למען התיעוד לבאים אחרי, יש גם אפשרות לסאב שאילתות בצורה פשוטה:
        https://sequelize.org/master/manual/sub-queries.html

        תגובה 1 תגובה אחרונה
        5

        בא תתחבר לדף היומי!
        • התחברות

        • אין לך חשבון עדיין? הרשמה

        • התחברו או הירשמו כדי לחפש.
        • פוסט ראשון
          פוסט אחרון
        0
        • דף הבית
        • קטגוריות
        • פוסטים אחרונים
        • משתמשים
        • חיפוש
        • חוקי הפורום