הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   איחוד טבלאות (https://hosts.co.il/forums/showthread.php?t=84782)

Insane 07-09-10 05:26

איחוד טבלאות
 
אהלן,

יש לי 2 טבלאות במסד: name1 ו- name2, לכל אחת מהן יש שדה.
name1: info
name2: title
אני מעוניין לאחד את שני הטבלאות לטבלה אחת ויחידה שמכילה את שני השדות.

דוגמה:

ציטוט:

name1&2
------------------------------------------
1: the title | the info
2: the title | the info
3: the title | the info
4: the title | the info
...
חיפשתי על זה בגוגל, אבל לא מצאתי תשובה.

תודה לעוזרים.

dor77 07-09-10 15:05

אולי תבנה מערכת שעושה את זה?

Insane 07-09-10 15:32

אני לא יודע php ברמה של לבנות מערכות.
יש איזה טריק שאפשר לעשות אולי ב phpmyadmin?

RS324 07-09-10 15:33

אתה צריך איזה שהוא KEY שמשותף ל 3 הטבלאות
לדוגמא

table1 : posts
postid , title , userid

table2 : users
userid , username , email

ואז אתה עושה
left join users AS users on users.userid = posts.userid

בכל מקרה אתה חייב איזהשהו שדה שהוא יהיה שדה משותף

Insane 07-09-10 15:58

כן בשני הטבלאות יש לי id.
אממ, אפשר הסבר איך להתאים את הקוד שנתת לטבלאות שלי?
PHP קוד:

left join [טבלה1] AS [טבלה1on [טבלה1].[?]= [טבלה2].[?] 

האם אני מריץ את הקוד הזה ב phpmyadmin?
תודה.

iOrel 07-09-10 18:02

sql - inner join
זה הפתרון בשבילך.

Insane 07-09-10 18:33

הרצתי את הקוד הבא:
ציטוט:

SELECT table1.info, table2.title FROM table1 LEFT Join table2 ON table1.id = title.id;
אבל זה לא באמת משלב כלום, זה נראה לי את השילוב, ואז כשאני מרענן הכל חוזר לקדמותו.

Hagaibl 07-09-10 21:16

ציטוט:

נכתב במקור על ידי instart (פרסם 778141)
הרצתי את הקוד הבא:

אבל זה לא באמת משלב כלום, זה נראה לי את השילוב, ואז כשאני מרענן הכל חוזר לקדמותו.

זה לא משלב. זה פשוט מקבל מידע משני הטבלאות ביחד.

Insane 07-09-10 21:23

שאלתי בנושא איך אפשר לשלב טבלאות, לא לשלוף מידע.
תודה לעוזרים.

RS324 08-09-10 00:33

ציטוט:

נכתב במקור על ידי instart (פרסם 778176)
שאלתי בנושא איך אפשר לשלב טבלאות, לא לשלוף מידע.
תודה לעוזרים.

תיצור VIEW עם הקוד
SELECT table1.info, table2.title FROM table1 LEFT Join table2 ON table1.id = title.id;

ואז כל פעם שתעשה SELECT מה VIEW הוא יביא לך את כל המידע.

Insane 08-09-10 01:59

ציטוט:

נכתב במקור על ידי RS324 (פרסם 778218)
תיצור VIEW עם הקוד
SELECT table1.info, table2.title FROM table1 LEFT Join table2 ON table1.id = title.id;

ואז כל פעם שתעשה SELECT מה VIEW הוא יביא לך את כל המידע.

זה ישלב את הטבלאות בתוך המסד לתמיד?
אני מעוניין בטבלה אחת.

Hagaibl 08-09-10 15:28

הגבתי וזה נעלם, כניראה שלא שלח לגמרי.
אבל הפתרון הוא ליצו
table3
שיהיה לו שדה name1
ושדה name2 עם הערכם.
או שתעשה את זה ידנית, או שתבנה סקריפט בPHP

Insane 08-09-10 15:58

ציטוט:

נכתב במקור על ידי Hagaibl (פרסם 778353)
הגבתי וזה נעלם, כניראה שלא שלח לגמרי.
אבל הפתרון הוא ליצו
table3
שיהיה לו שדה name1
ושדה name2 עם הערכם.
או שתעשה את זה ידנית, או שתבנה סקריפט בPHP

כן, חשבתי ליצור table שלישי, אבל איך אוכל להכניס את הערכים לשמה?

Hagaibl 08-09-10 17:16

כפי שאמרתיף בצורה ידנית או בצורה של סקריפט(שתבנה)

RS324 08-09-10 18:36

VIEW זה בדיוק כמו TABLE

כשתעדכן את table1 או table2 ה VIEW שלך יתעדכן באופן אוטומטי.

תנסה ותראה...

BlueNosE 08-09-10 22:10

תראה אתה צריך איזשהו תיאום בין הטבלאות, כלומר אם כרגע יש לך בטבלה א' נתונים (1) ו-(2) ובטבלה ב' (A) ו-(B) ואתה מעוניין שהם יהיו מסודרים בתור (1,A) ו(2,B), צריך איכשהו שהקוד שרץ ידע מה מתחבר למה.

איזה קשר יש בניהם? מדובר בכמות גדולה של נתונים קיימים? (כי אם לא, לפעמים עדיף פשוט לבנות מחדש)



רותם, מה קורה? (: אני רואה שאנשים נשארו פה הרבה זמן חח

RS324 09-09-10 01:58

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 778437)
תראה אתה צריך איזשהו תיאום בין הטבלאות, כלומר אם כרגע יש לך בטבלה א' נתונים (1) ו-(2) ובטבלה ב' (A) ו-(B) ואתה מעוניין שהם יהיו מסודרים בתור (1,A) ו(2,B), צריך איכשהו שהקוד שרץ ידע מה מתחבר למה.

איזה קשר יש בניהם? מדובר בכמות גדולה של נתונים קיימים? (כי אם לא, לפעמים עדיף פשוט לבנות מחדש)



רותם, מה קורה? (: אני רואה שאנשים נשארו פה הרבה זמן חח

לא ממש הרבה זמן חזרתי לפני חודשיים בערך +/-

ושוב לגבי האשכול , את התיאום מבצע ה VIEW
לא נראה לי שמישהו פה ניסה את זה פעם.

AlmogBaku 11-09-10 21:11

בשביל מה VIEW?!
אם הוא רוצה לתקן תבנית קיימת חבל להשאיר את הטבלאות.

הדרך הפשוטה ביותר היא להעתיק טבלה אחת באופן ידני אל השניה ולמחוק אותה.
או שאפשר ב SQL ע"י SELECT INTO: http://www.w3schools.com/Sql/sql_select_into.asp


כל הזמנים הם GMT +2. הזמן כעת הוא 12:47.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ