הוספת שם הטבלה לשאילתה? (MySQL)
שלום,
יש לי שאילתה שמציגה מידע מ3 טבלאות שונות בעזרת UNION.
בשביל שיהיה יותר נוח ולחסוך במילים הנה השאילתה:
קוד PHP:
SELECT `RowID`,`AdminID`,`Reason`,`JailTime` AS `P_Time`,`GameTime`,`Time` FROM `Jails` WHERE `UserID` = '21411' UNION ALL SELECT `RowID`,`AdminID`,`Reason`,`MuteTime` AS `P_Time`,`GameTime`,`Time` FROM `Mutes` WHERE `UserID` = '21411' UNION ALL SELECT `RowID`,`AdminID`,`Reason`,`UserID` AS `P_TIME`,`ReadRules` AS `GameTime`,`Time` FROM `Kicks` WHERE `UserID` = '21411'
כמו שאתם רואים אני לוקח מידע מ3 טבלאות שונות ובשביל שיהיה נוח לעבוד עם זה בסופו של דבר אני יוצר Alias לחלק מהעמודות.
הבעייה:
אני רוצה להוסיף עמודת "דמה" (שלא באמת קיימת באף אחת מהטבלאות) ובתוך העמודה יהיה רשום מאיזו טבלה נלקחה השורה (על מנת שאני אוכל לעבוד עם זה בסוף בPHP).
למי שלא הבין, אם כרגע הטבלה הסופית שאני מקבל היא:
RowID, AdminID, Reason, P_Time, GameTime, Time
.אני רוצה שתיהיה עוד עמודה, שבכל שורה יהיה רשום מאיזו טבלה השורה הגיעה
המטרה הסופית היא להציג באתר טבלה שתכיל את כל סוגי הטבלאות מהמסד (Jails,Mutes,Kicks) ולסדר את זה לפי זמן (לפי העמודה Time).
(אגב, אם אין חיה כזו, אשמח אם תוכלו להציע לי רעיונות אחרים לפתרון הבעייה)
תודה לעוזרים ![Smile](images/smilies/smile.gif)
עריכה:
אוקי MatiM מהפורום עזר לי פה עם קומבינה קטנה.
הנה הפתרון:
קוד PHP:
SELECT `RowID`,`AdminID`,`Reason`,`JailTime` AS `P_Time`,`GameTime`,`Time`,'Jails' AS 'T_Name' FROM `Jails` WHERE `UserID` = '21411' UNION ALL SELECT `RowID`,`AdminID`,`Reason`,`MuteTime` AS `P_Time`,`GameTime`,`Time`,'Mutes' AS 'T_Name' FROM `Mutes` WHERE `UserID` = '21411' UNION ALL SELECT `RowID`,`AdminID`,`Reason`,`UserID` AS `P_TIME`,`ReadRules` AS `GameTime`,`Time`,'Kicks' AS 'T_Name' FROM `Kicks` WHERE `UserID` = '21411'
ועכשיו לשאלה נוספת, האם יש דרך יותר יעילה לעשות את זה?
תודה ![Smile](images/smilies/smile.gif)
נערך לאחרונה ע"י Smile123 בתאריך 23-09-2010 בשעה 16:29.
|