sql - Inner Join in Access Query not working -


यहां डीबी टेबल हैं

समूह उपयोगकर्ता

  ग्रुपआईडी - यूजरआईडी -------------------- 00001 - उपयोगकर्ता 1 00002 - उपयोगकर्ता 1 00003 - उपयोगकर्ता 2  

समूह

<पूर्व> समूह आईडी - समूहनाम - लॉक - हटाए गए ----------------------------- ---------------- 00001 - ग्रूप 1 - ट्रू - झूठी 00002 - ग्रूप 2 - झूठी - झूठी 00003 - ग्रूओप 3 - झूठी - गलत

मैं हूं समूह यूज़र टेबल से नीचे दी गई क्वेरी में एक विशिष्ट समूह के लिए UserIds हो रही है, लेकिन मैं यह भी देखना चाहता हूं कि क्या समूह ID जहां खंड locked = true या delete = true में है समूह तालिका तब परिणाम समूह में इसका चयन नहीं किया जाना चाहिए।

यहां मैंने जो भी कोशिश की है

  समूह का चयन करें GUU.UserId GroupsUsers से AS GU Inner Join Groups as G पर GU.GroupID = G.GroupIdWHERE ((G.GroupId) = 00001)) और (((जी। लॉक) = एफ Alse)) या ((जी। हटाए गए) = गलत));  

लेकिन यह क्वेरी मुझे सभी उपयोगकर्ताओं को वापस लौटा देती है

मैं सिर्फ किसी खास समूह के उपयोगकर्ताओं को प्राप्त करना चाहता हूं अगर यह लॉक या हटाए नहीं है < / P>

आपके पास की क्वेरी यह है:

  चुनें DISTINCT GU.UserId समूह यूजर से जीयू इनर जॉइन समूह के रूप में जी जीयूआई ग्रुपआईडी = जी। ग्रुप इड ((जी समूह आईआईडी) = 00 001)) और (((जी। लॉक) = फॉल्स)) या ((जी। डीइलेटेड) = असत्य));  

यह क्या कहता है: "समूह यूज़र से चुनें यूजरआईड जहां समूह आईडी 00001 है और इसके साथ ही लॉक या हटाए गए हैं।

लेकिन आपके प्रश्न में आपने कहा है "यह जांचने के लिए कि समूह आईडी जहां खंड लॉक = सच है या समूह तालिका में हटाएं = सच है, तो इसे परिणाम सेट में नहीं चुना जाना चाहिए।"

इसलिए यदि इसे लॉक किया गया है, सच है, या यदि हटाया गया सत्य है, तो जब आप अपनी क्वेरी में विपरीत स्थिति का परीक्षण कर रहे हैं, (यानी गलत के खिलाफ परीक्षण) आपको और इसके बजाय OR:

  का चयन करने की आवश्यकता है GULECT। समूह यूजर से जीयू इनर जॉइन ग्रुप के रूप में जी पर जीयू ग्रुपआईडी = जी। ग्रुप इड ((जी समूह आईआईडी) = 00 001)) और (((जी। लॉक) = फॉल्स)) और ((जी। डीइलेटेड) = पीएसः एक्सेस की क्वेरी जनरेटर ब्रैकेट्स के खंड में कहां रखता है, लेकिन अधिकांश भाग के लिए, वे आवश्यक नहीं हैं, और क्वेरी पढ़ने में काफी आसान है और समझें कि क्या आप उनमें से छुटकारा पा रहे हैं। इसके अलावा, अगर आपको कई टाइपों के साथ बातचीत करने के लिए प्रश्नों को लिखना पड़ता है बैकएंड डाटाबेस के एसएएस, झूठी बदले 0 के खिलाफ परीक्षण करने के लिए उपयोगी होगा:  
  समूह यूज़र्स से चुनें जिले GUID उपयोगकर्ता। जीयू इनर जॉइन समूह जी जी पर जीयू ग्रुपआईडी = जी। ग्रुपआईडी कहाँ है G.GroupId = 00001 और G.Locked = 0 और G.Deleted = 0  

Comments

Popular posts from this blog

c# - XML serialize base class without knowing derived class -

c# - UnhandledExceptionMode.ThrowException for AppDomain.UnhandledException -

udp - The relationship between MTU and size of skb in xmit function -