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

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

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

מתוזמן נעוץ נעול הועבר תכנות
3 פוסטים 2 כותבים 73 צפיות
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • י מנותק
    י מנותק
    יוסף בן שמעון
    כתב ב נערך לאחרונה על ידי
    #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
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
  • התחברות

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

  • התחברו או הירשמו כדי לחפש.