Solved

Select Query

Posted on 2000-05-15
8
157 Views
Last Modified: 2010-05-02
I have a candidates table Linked to a Language_Link table.
In the Language_Link table I have 2 columns, dsLanguageId and dsCandidateID.
I want to do get all the candidates who speak English and afrikaans what would the select query look like
0
Comment
Question by:JohnRock
  • 3
  • 2
  • 2
  • +1
8 Comments
 
LVL 4

Expert Comment

by:Jeremy_D
ID: 2809792
SELECT *
 FROM Candidates
  INNER JOIN Language_Link ON Candidates.dsCandidateID = Language_Link.dsCandidateID
 WHERE Language_Link.dsLanguageID = 'EN' Or Language_Link.dsLanguageID = 'AF'

You'll have to change the 'EN' and 'AF' in the where-clause to reflect the data in your Language_Link Table (could be a string like these or a numerical ID, depending on how you designed this table).
0
 
LVL 4

Expert Comment

by:Jeremy_D
ID: 2809795
Sorry, If you want everyone that speaks English *and* Afrikaans then the "OR" in the WHERE-clause should be an "AND" of course.

Sorry, early monday morning and all that :)
0
 

Accepted Solution

by:
Ryanc earned 90 total points
ID: 2809802
select  A.dsCandidateID
 
from  dsCandidates as A,
        dsLanguage as B,
        dsLanguage_Link as C
 
where A.dsCandidateID = C.dsCandidateID
and B.dsLanguageID = C.dsLanguageID
and C.dsLanguageID in (select dsLanguageId from dsLanguage as Z where Z.dsLanguageID = 1 or Z.dsLanguageID = 4 or Z.dsLanguageID = 6 or Z.dsLanguageID = 8)
 
group by A.dsCandidateID having count(*) = 4
order by A.dsCandidateID
0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 

Expert Comment

by:Ryanc
ID: 2809811
sorry Jeremy,

if you change the OR to the AND, what will happen is that SQL will look for A SINGLE RECORD in the Language_Link table with a value of 'En' AND 'Afr' - clearly such a record will never exist ...

check my comment for the workable solution ...

cheers
Ryan
0
 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 2810290
SELECT *
 FROM Candidates
  INNER JOIN (
select distinct dsCandidateID from
Language_Link
 WHERE Language_Link.dsLanguageID = 'EN' Or Language_Link.dsLanguageID = 'AF'
) AS Language_Link
ON Candidates.dsCandidateID = Language_Link.dsCandidateID


0
 

Author Comment

by:JohnRock
ID: 2810327
Adjusted points from 50 to 90
0
 

Author Comment

by:JohnRock
ID: 2810337
Comments to AngelIII.
Your query brings back everyone that speaks english or afrikaans, which is incorrect. I only want the people that speak Eng and Afr.
0
 
LVL 4

Expert Comment

by:Jeremy_D
ID: 2810601
Having trouble posting comments. Third attempt:

It's usually faster (given the right indexes) to use a second join in stead of a sub-query, like this (pending other 'monday-issues' :o) ):

SELECT *
 FROM Candidates
  LEFT JOIN Language_Link AS l1 ON Candidates.dsCandidateID = l1.dsCandidateID
  LEFT JOIN Language_Link AS l2 ON Candidates.dsCandidateID = l2.dsCandidateID
 WHERE l1.dsLanguageID = 'EN' AND l2.dsLanguageID = 'AF'

0

Featured Post

Active Directory Webinar

We all know we need to protect and secure our privileges, but where to start? Join Experts Exchange and ManageEngine on Tuesday, April 11, 2017 10:00 AM PDT to learn how to track and secure privileged users in Active Directory.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Copy a row 12 64
Protecting vb6 & .Net code Obfuscation 18 156
Added a column screws up code 5 63
Automatically generate a pdf file from an excel file and email out everyday 2 62
Introduction I needed to skip over some file processing within a For...Next loop in some old production code and wished that VB (classic) had a statement that would drop down to the end of the current iteration, bypassing the statements that were c…
Background What I'm presenting in this article is the result of 2 conditions in my work area: We have a SQL Server production environment but no development or test environment; andWe have an MS Access front end using tables in SQL Server but we a…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question