05-03-2008, 19:02
|
|
|
חבר מתאריך: 17.05.05
הודעות: 7,321
|
|
תודה :)
קודם שמתי לב ששכחתי לפרט שמסד הנתונים הוא MySQL.
דבר נוסף, ניסיתי מה שכתבת, אבל זה בעייתי כי ב-2 הטבלאות יש טורים בעלי שמות שונים לגמרי ואין כל קשר בין 2 הטבלאות.
גם בשאילתא עצמה אני רוצה לקבל מידע מ-2 הטבלאות, בלי שתהיה תלות ביניהן (בלי שערך של שדה אחד בטבלה יהיה חייב להיות שווה לערך של שדה בטבלה השניה)
העניין עם המכפלה הקרטזית מובן לי במעורפל...
וניסיתי לשחק איתו עם פיסקת WHERE, אך אני לא מבין את החוקיות במצב הזה כאשר יש לי 2 תנאים כאלה לדוגמא:
מצב 1:
קוד:
SELECT tab1.a,tab1.b,tab2.a,tab2.b
FROM tab1,tab2
WHERE tab1.column1='foo' AND tab2.column2='bar'
מצב 2:
קוד:
SELECT tab1.a,tab1.b,tab2.a,tab2.b
FROM tab1,tab2
WHERE tab1.column1='foo' OR tab2.column2='bar'
(שים לב שהשאילתות דומות לגמרי, מלבד בפיסקת ה-WHERE שבה יש לי בשאילתא העליונה תנאי של AND ובשאילתא התחתונה תנאי של OR. מה החוקיות פה? קשה לי להבין את המכפלה הקרטזית הזאת... )
עוד דבר הוא שאני בוחר מידע מכל טבלה עפ"י מידע חיצוני, לדוגמא:
[ אך שוב, אין קשר בין הטבלאות, לדוגמא לא יהיה לי מצב כזה:
קוד:
tbl1.column=tbl2.column2
]
ודבר אחרון הוא שבסופו של דבר יוצא שמכל טבלה אני בוחר רשומה אחת בלבד - סה"כ 2 רשומות שאני רוצה לחברן ביחד לרשומה אחת. LEFT JOIN לדוגמא עושה את העבודה הזו, אבל הוא גורם לטבלה להיות תלותית בטבלה המקורית שנמצאת בפיסקת ה- FROM.
|