اذهب إلى المحتوى

السؤال

نشر

لدي ثلاثه جداول في قاعدة البيانات
الجدول الاول جدول المستخدمين users
ويتكون من الاعمده id و name وتوجد بداخله البيانات التاليه
name | id
ali | 1
ahmed | 2
khaled | 3
salem | 4
الجدول الثاني جدول الحضر block وتوجد بداخله الاعمده والبيانات التاليه
عمود block_id وعمود user1 لتخزين اي دي المستخدم الذي قام بالحضر وعمود user2 لتخزين اي دي المسخدم المحضور
وهذه بيانات الجدول
user2 | user1 | block_id
3 | 1 | 1
4 | 1 | 2
الجدول الثالث جدول الدردشه chat وفيه الاعمده التاليه
عمود chat_id وعمود user لتخزين اي دي المستخدم المرسل للرساله وعمود msg لتخزين نص الرساله
وهذه بيانات الجدول وطبعا هذا شات عام وليس خاص
msg | user | chat_id
hello | 4 | 1
good morning | 3 | 2
welcome | 2 | 3
i love you | 1 |4
يتضح من بيانات الجدولين الاولين ان المستخدم رقم 1 قام بحضر المسخدمين رقم 3 و 4
الان اريد جملةالاستعلام لعرض رسائل الشات بحيث لا تظهر رسائل المستخدمين المحضورين للمستخدمين الذين حضروهم ورجاءا لا احد يأتي ويكتب جملة الاستعلام تبع الاساسيات وحديثي التعلم هذه

SELECT * FROM  chat  WHER user != 3 and user ! = 4

هذه الجمله مليت من تكرارها وانا فاهمها وهذه من الاساسيات ، اريد جمله استعلاميه ترجع للمستخدم الزائر جميع الرسائل ماعدا رسائل المستخدمين الذين قام بحضرهم اعتمادا على الجداول الثلاثه، واذا لم يكن هناك جملة استعلاميه مباشره تعمل هذا، فكيف اقوم بهذا الامر واخفي رسائل المستخدم المحضور عن المستخدم الحاضر له. 

 

Recommended Posts

  • 1
نشر
بتاريخ 14 دقائق مضت قال علي الكاسر:

لدي ثلاثه جداول في قاعدة البيانات
الجدول الاول جدول المستخدمين users
ويتكون من الاعمده id و name وتوجد بداخله البيانات التاليه
name | id
ali | 1
ahmed | 2
khaled | 3
salem | 4
الجدول الثاني جدول الحضر block وتوجد بداخله الاعمده والبيانات التاليه
عمود block_id وعمود user1 لتخزين اي دي المستخدم الذي قام بالحضر وعمود user2 لتخزين اي دي المسخدم المحضور
وهذه بيانات الجدول
user2 | user1 | block_id
3 | 1 | 1
4 | 1 | 2
الجدول الثالث جدول الدردشه chat وفيه الاعمده التاليه
عمود chat_id وعمود user لتخزين اي دي المستخدم المرسل للرساله وعمود msg لتخزين نص الرساله
وهذه بيانات الجدول وطبعا هذا شات عام وليس خاص
msg | user | chat_id
hello | 4 | 1
good morning | 3 | 2
welcome | 2 | 3
i love you | 1 |4
يتضح من بيانات الجدولين الاولين ان المستخدم رقم 1 قام بحضر المسخدمين رقم 3 و 4
الان اريد جملةالاستعلام لعرض رسائل الشات بحيث لا تظر رسائل المستخدمين المحجوبين ورجاءا لا احد يأتي ويكتب جملة الاستعلام تبع الاساسيات وحديثي التعلم هذه

لدي ثلاثه جداول في قاعدة البيانات
الجدول الاول جدول المستخدمين users
ويتكون من الاعمده id و name وتوجد بداخله البيانات التاليه
name | id
ali | 1
ahmed | 2
khaled | 3
salem | 4
الجدول الثاني جدول الحضر block وتوجد بداخله الاعمده والبيانات التاليه
عمود block_id وعمود user1 لتخزين اي دي المستخدم الذي قام بالحضر وعمود user2 لتخزين اي دي المسخدم المحضور
وهذه بيانات الجدول
user2 | user1 | block_id
3 | 1 | 1
4 | 1 | 2
الجدول الثالث جدول الدردشه chat وفيه الاعمده التاليه
عمود chat_id وعمود user لتخزين اي دي المستخدم المرسل للرساله وعمود msg لتخزين نص الرساله
وهذه بيانات الجدول وطبعا هذا شات عام وليس خاص
msg | user | chat_id
hello | 4 | 1
good morning | 3 | 2
welcome | 2 | 3
i love you | 1 |4
يتضح من بيانات الجدولين الاولين ان المستخدم رقم 1 قام بحضر المسخدمين رقم 3 و 4
الان اريد جملةالاستعلام لعرض رسائل الشات بحيث لا تظهر رسائل المستخدمين المحضورين للمستخدمين الذين حضروهم ورجاءا لا احد يأتي ويكتب جملة الاستعلام تبع الاساسيات وحديثي التعلم هذه

SELECT * FROM  chat  WHER user != 3 and user ! = 4

هذه الجمله مليت من تكرارها وانا فاهمها وهذه من الاساسيات ، اريد جمله استعلاميه ترجع للمستخدم الزائر جميع الرسائل ماعدا رسائل المستخدمين الذين قام بحضرهم اعتمادا على الجداول الثلاثه، واذا لم يكن هناك جملة استعلاميه مباشره تعمل هذا، فكيف اقوم بهذا الامر واخفي رسائل المستخدم المحضور عن المستخدم الحاضر له. 

 

مرحبا علي،

للحصول على الرسائل الموجودة في الجدول chat بدون رسائل المحضورين يكفي عمل الإستعلام الآتي:

SELECT * FROM chat WHERE user not in (SELECT user2 from block WHERE user1=user_id)
/* user_id: هو الايدي الخاص بالمستخدم الحالي */

بالتوفيق.

  • 0
نشر
بتاريخ 37 دقائق مضت قال مسعود زاهي:

مرحبا علي،

للحصول على الرسائل الموجودة في الجدول chat بدون رسائل المحضورين يكفي عمل الإستعلام الآتي:

SELECT * FROM chat WHERE user not in (SELECT user2 from block WHERE user1=user_id)
/* user_id: هو الايدي الخاص بالمستخدم الحالي */

هذا الذي اريده بالضبط تسلم ايدك اخي وجزاك الله خير مشكور من القلب. 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...