calvin Posted August 11, 2005 Posted August 11, 2005 Hi, I want to get all the student from a Database table which store student certificate. For example, I need a query of student who "HAVE" 3 certificate(Cert A, B, C). Certificate Table: StudentName CertificateName John Cert A Wilson Cert B John Cert B John Cert C Michael Cert A Output: John sqlQuery = "Select * from CertificateTable Where (CertificateName = 'Cert A') AND (CertificateName = 'Cert B') AND (CertificateName= 'Cert C')" This is my query, but it not works. Calvin Quote
penfold69 Posted August 11, 2005 Posted August 11, 2005 Something along the lines of: Select StudentName, Count(CertificateName) from certificatetable GROUP BY StudentName Having Count(CertificateName) = 3 (not sure if the Having clause is portable away from MySql) completely untested, and off the top of my head. B. Quote
Joe Mamma Posted August 11, 2005 Posted August 11, 2005 select s1.* [indent]from student s1 [/indent] inner join ( [indent]select name, count(*) cnt [indent]from (select distinct name, cert from student) temp where cert in ('A', 'B', 'C') group by name having count(*) = 3 [/indent] [/indent]) [indent]s2 on s1.name = s2.name [/indent] Quote Joe Mamma Amendment 4: The right of the people to be secure in their persons, houses, papers, and effects, against unreasonable searches and seizures, shall not be violated, and no warrants shall issue, but upon probable cause, supported by oath or affirmation, and particularly describing the place to be searched, and the persons or things to be seized. Amendment 9: The enumeration in the Constitution, of certain rights, shall not be construed to deny or disparage others retained by the people.
calvin Posted August 12, 2005 Author Posted August 12, 2005 Thanks to penfold69 and Joe Mamma, the query works Calvin Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.