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

  • SEARCH
  • Home
  • 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 101k
  • Answers 101k
  • 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
  • Editorial Team
    Editorial Team added an answer How would you know if a user voted on a… May 11, 2026 at 8:08 pm
  • Editorial Team
    Editorial Team added an answer cURL PHP documentation (curl_setopt) says: CURLOPT_FORBID_REUSE - TRUE to force… May 11, 2026 at 8:08 pm
  • Editorial Team
    Editorial Team added an answer ... = preg_replace('/foo\s+bar/', 'fubar', ...); May 11, 2026 at 8:08 pm

Related Questions

Problem: a table of coordinate lat/lngs. Two rows can potentially have the same coordinate.
I'm trying to convert an XML file into the markup used by dokuwiki, using
I have two tables, one stores the products and quantity we have bought, the
We have a two tables with a one-to-many relationship. We would like to enforce

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.