मेरे पास दो टेबल हैं

[उपयोगकर्ता] आईडी, उपयोगकर्ता नाम, आयु, शहर .... और अन्य

तथा

[टीचर लुक] आईडी, यूजर आईडी, टीचिड, डेटा

जब शिक्षक पहली तालिका [उपयोगकर्ता] से उपयोगकर्ता देखता है, तो वह दूसरी तालिका में मान डालता है

NULL, उपयोगकर्ता आईडी (यह पहली तालिका से आईडी मान है), शिक्षक (यह शिक्षक की यूनिक आईडी है - हो सकता है 1,2,3 ... 10), और यूनिक्स में समय

यह हो गया, यह काम करता है,

स्क्रिप्ट के दूसरे भाग में समस्या:

शिक्षक को 10 यादृच्छिक उपयोगकर्ता देखने चाहिए जिनका उन्होंने अभी तक परीक्षण नहीं किया है - वे जो अभी तक दूसरी तालिका में नहीं हैं।

मैं कोशिश करता हूं

SELECT * 
  FROM users 
  JOIN teacherlook 
 WHERE users.age>18 
   AND (users.id<>teacherlook.userid AND teacherlook.teachid<>$teacherid)     
 LIMIT 0,10 

और एक खाली मुद्दा प्राप्त करें। कृपया, दूसरी तालिका में शिक्षक द्वारा देखे गए उपयोगकर्ताओं के अपवाद के साथ, पहली तालिका से 10 यादृच्छिक उपयोगकर्ताओं का चयन करने के लिए सही अनुरोध करने में सहायता करें।

0
Dr.Noname 11 अगस्त 2017, 13:25

1 उत्तर

सबसे बढ़िया उत्तर

आपको जो चाहिए वह LEFT JOIN है। यह एलएचएस तालिका से सभी पंक्तियों को वापस कर देगा जो आरएचएस तालिका में मौजूद नहीं है।

SELECT *
FROM users
LEFT JOIN teacherlook
ON users.id = teacherlook.userid 
   AND teacherlook.teachid = $teacherid
   AND users.age > 18
WHERE teacherlook.id IS NULL
ORDER BY RAND()
LIMIT 0,10
1
Samir 11 अगस्त 2017, 14:00
कृपया मेरा उत्तर स्वीकार करें जो भविष्य में इसी तरह की समस्या वाले किसी की मदद करेगा :)
 – 
Samir
11 अगस्त 2017, 15:52