Shiran.Tips

קיימות

July 12, 2019 | 1 Minute Read

SQL#

והפעם- בואו נדבר על exists/not exists

הבעיה שלנו היא ש…

קיימת לנו טבלה שבשורות שונות יופיעו נתונים שונים עבור אותו פרט, ואנחנו רוצים לדעת האם מתקיים גם x וגם y (או לא x ולא y) עבור אותו הפרט.

הטיפ שלי

נשתמש בפקודה exists/not exists.

בואו ננסה את זה בפועל

הטבלה שלנו:

potential_love:

name answer
Yogev M
Batel F
Shiri F
Liran M
Zukit F
Dudu M
Yogev single
Dudu single
Liran single
Shiri single
Batel taken
Zukit taken

בטבלה מוצגים אנשים ונשים שענו על 2 שאלות, מה המגדר שלהם והאם הם פנויים או תפוסים. הנתונים מוצגים כך שכל אדם מופיע ב-2 שורות נפרדות. פעם עם התשובה לשאלה הראשונה ופעם עם התשובה לשאלה השניה. המטרה שלנו היא ליצור טבלה שתציג את כל האפשרויות לזוגות הפוטנציאלים, לשם כך נרצה שבעמודה אחת יופיעו שמות הגברים הפנויים ובעמודה השניה שמות הנשים הפנויות. וכמובן בכל הצירופים האפשריים, כלומר כל גבר עם כל אחת מהנשים ולהפך.

הפקודות שנבצע:

תוצאה:

man woman
Yogev Shiri
Dudu Shiri
Liran Shiri

בעצם יצרנו טבלה אחת בה נכללים שמות כל הגברים הפנויים, וטבלה שניה בה נכללים שמות הנשים הפנויות, באמצעות פקודת ה-cross join יצרנו את כל הצירופים האפשריים ביניהם. כלומר, כל הזוגות הפוטנציאלים. פקודת הexists איפשרה לנו לבחור גם בכל הגברים וגם בכל הפנויים (או גם בכל הנשים וגם בכל הפנויות) על אף שהמידע נמצא באותה עמודה ובשורות נפרדות.

רוצה להשאר מעודכנ/ת?

* שדה חובה