Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 56723
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 10, 20262026-05-10T17:34:45+00:00 2026-05-10T17:34:45+00:00

We have two Tables: Document: id, title, document_type_id, showon_id DocumentType: id, name Relationship: DocumentType

  • 0

We have two Tables:

  • Document: id, title, document_type_id, showon_id
  • DocumentType: id, name
  • Relationship: DocumentType hasMany Documents. (Document.document_type_id = DocumentType.id)

We wish to retrieve a list of all document types for one given ShowOn_Id.

We see two possiblities:

SELECT DocumentType.* FROM DocumentType WHERE DocumentType.id IN (     SELECT DISTINCT Document.document_type_id FROM Document WHERE showon_id = 42 );  SELECT DocumentType.* FROM DocumentType WHERE DocumentType.id IN (     SELECT Document.document_type_id FROM Document WHERE showon_id = 42 ); 

Our question is: when and if is it better to use the DISTINCT to get the smaller record set versus retrieving the whole table and the IN statement walking the table to the first match. (We guess that’s what it does ;-))

Is this different for different databases, is there a common answer?

Or is there a better way of doing it? (We are in .NET land)

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-10T17:34:46+00:00Added an answer on May 10, 2026 at 5:34 pm

    From my point of view it should not make any difference inside SQL Server (but who knows how this is implemented).

    Think of it this way: to return the resultset the server needs to go into the Document table and retrieve all document_type_id WHERE showon_id = 42. In the process of retrieving the document_type_ids (e.g. by index seeking) it puts them into a hash table. When this process has finished the hash table will contain distinct values anyway. After that the query execution goes inside the Document_Type table, scans the primary key and probes into the hash table. Note that this depends, e.g. maybe it’s more efficient to not use a hash table, when the expected row count from the Document table it low compared to Document_Type, but in general you get the same query plan as for the query wmasm just suggested.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 67k
  • Answers 67k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • added an answer This works for me. Add LoadedBehavior='Manual' <MediaElement LoadedBehavior='Manual' x:Name='bgvideo' Width='800'… May 11, 2026 at 12:00 pm
  • added an answer You can check the Control.ModifierKeys - because that is an… May 11, 2026 at 12:00 pm
  • added an answer Set the TreeView.LabelEdit property to False May 11, 2026 at 12:00 pm

Related Questions

We have two Tables: Document: id, title, document_type_id, showon_id DocumentType: id, name Relationship: DocumentType
I have two tables, one stores the products and quantity we have bought, the
I have two tables, we'll call them Foo and Bar , with a one
We have two tasks (T1 and T2) in our vxWorks embedded system that have
We have two versions of a managed C++ assembly, one for x86 and one
We have two branches: 1. HEAD - the latest version (AKA Trunc) 2. PROD
We have some web pages which have two frames, with one frame in the
The scenario is this We have two applications A and B, both which are
At work we have two competing theories for salts. The products I work on
Let's say we have two classes, Foo and Foo Sub, each in a different

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.