04-04-2006, 16:18
|
|
|
חבר מתאריך: 17.05.05
הודעות: 7,321
|
|
תגובה לכולם...
ציטוט:
בעיית JOIN: חיברת את P ו-NP בהתבסס על NP ו-T
|
אוקי אני אבדוק
ציטוט:
מאיפה בכלל העתקת את השאילתה הזאת ?
|
מהמערכת פורומים שאני מתכנת...לא כתבתי אותה במלואה כיוון שזה לא היה נחוץ ממש (ככה לפחות חשבתי).
ה-$DB->query מריץ את השאילתה (שלא תגידו שלא פועל טוב =\ )
ציטוט:
למה אתה מתחיל עם LEFO JOIN ON לפני שהשתמשת קודם כל ב-WHERE ל-join הראשון ?
|
ה-WHERE אמורים לכתוב אותו בסוף, לא? ובטעות מחקתי אותו...
וה- LEFT JOIN הם אמורים להיות לפני ה-WHERE ... עד כמה שידוע לי
ציטוט:
לדעתי חסר לך יסע בסיס בשימשו ב-join, אם אתה באמת רוצה לדעת את הנושא, תלמד מהאתר mysql ומתרים אחרים המסבירים בנושא, תקרא דוגמאות, ונסה קודם לכתוב בעצמך שאילתה פשוטה ביותר.
|
דווקא אני מבין ב-SQL וכתיבת שאילתות פשוט לא הצלחתי את זה...התחלתי בזמן האחרון עם LEFT JOIN ואני יחסית מבין את זה בצורה טובה מאוד =)
ציטוט:
WHERE אינו חלק ממשפט ה JOIN, הוא מימוש שונה של INNER JOIN...
הוא מעוניין ב LEFT [OUTER] JOIN...
ה JOINים שלו הם עדיין חלק ממשפט ה FROM ולכן כל הטבלאות מופיעות ב FROM ולא כפי שטענת.
|
לא הבנתי את ה-OUTER וה- INNER =\
דרך אגב בהזדמנות הזאת עוד שאלה:
למה כשאני כותב דבר כזה לדוגמא:
(הסברים: $DB->query מריץ שאילתה. $DB->fetch_row - לוקח מידע מהשורה של השאילתה.)
קוד PHP:
$DB->query(Select * From table ....); while ($one = $DB->fetch_row() ) { פקודות... $DB->query(Select * From table ....); $two = $DB->fetch_row(); עוד פקודות... }
וזה אמור להציג מספר הודעות אחרונות של משתמש בפורום, זה מציג לי רק הודעה ראשונה (אבל מציג את שאר העמודים שבהם יש רק הודעה אחת בכל עמוד) ולא ממשיך את הלולאה while ? כאילו שהלולאה נעצרת אחרי הפעם הראשונה ... פעם שניה שיש לי תקלה כזאת.... כאילו בסיבוב השני הוא בוחר מידע מהשאילתה הראשונה ולא מהשניה (שנמצאת בתוך הלולאה).
תודה רבה לכולם !
נערך לאחרונה ע"י DCD בתאריך 04-04-2006 בשעה 16:24.
|