![]() |
|
Welcome to the Computer Webmaster Gaming Console Graphics Forum forums. You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today! If you have any problems with the registration process or your account login, please contact contact us. |
| |||||||
| Database Database problems or need to ask a question? maybe something to do with sql injections or a database software question. Database topics cover MySQL, PostgreSQL, Oracle, SQL Server or anything else related to databases. |
![]() |
| | LinkBack | Thread Tools | Display Modes |
| | #1 | ||
| Hi there, I have a very simple question I guess: I have two tables, let's say "Family" and "Person" and a "Family" contains one or more "Person". If I want to select every Family for which (at least) a Person is called "Peter", I will write something like this: select distinct(f.idFamily) from Family as f join Person as p on p.idFamily=f.idFamily where p.name like 'Peter'; But if now, I want every Family in which no one is called "Peter", I don't know how to write it. It seems so basic, but I don't even know where to seek for help on WWW. Any tips ? -- Hugo | |||
| Advertisements |
| | #2 | ||
| Hugo wrote: > Hi there, > > I have a very simple question I guess: > > I have two tables, let's say "Family" and "Person" and a "Family" > contains one or more "Person". > > If I want to select every Family for which (at least) a Person is > called "Peter", I will write something like this: > > select distinct(f.idFamily) from Family as f join Person as p on > p.idFamily=f.idFamily where p.name like 'Peter'; > > But if now, I want every Family in which no one is called "Peter", I > don't know how to write it. It seems so basic, but I don't even know > where to seek for help on WWW. Seems an Outer Join / where NULL statement. Something like (untested): SELECT x.family FROM ( SELECT f.idFamily AS 'family', p.name AS 'name' FROM family f LEFT OUTER JOIN person p ON p.idFamily = f.idFamily AND p.name LIKE 'peter' ) x WHERE x.name IS NULL The trick is the LEFT _OUTER_ JOIN, where the requirement is that person.name a NOT NULL field is. Grtz, -- Rik Wasmus -- Rik Wasmus | |||
| | #3 | ||
| Rik wrote: > Hugo wrote: >> Hi there, >> >> I have a very simple question I guess: >> >> I have two tables, let's say "Family" and "Person" and a "Family" >> contains one or more "Person". >> >> If I want to select every Family for which (at least) a Person is >> called "Peter", I will write something like this: >> >> select distinct(f.idFamily) from Family as f join Person as p on >> p.idFamily=f.idFamily where p.name like 'Peter'; >> >> But if now, I want every Family in which no one is called "Peter", I >> don't know how to write it. It seems so basic, but I don't even know >> where to seek for help on WWW. > > Seems an Outer Join / where NULL statement. > Something like (untested): > > SELECT x.family > FROM ( > SELECT f.idFamily AS 'family', p.name AS 'name' > FROM family f > LEFT OUTER JOIN person p ON p.idFamily = f.idFamily > AND p.name LIKE 'peter' > ) x > WHERE x.name IS NULL > Well, I'm curious, did it work? Grtz, -- Rik Wasmus | |||
| | #4 | ||
| Rik wrote : >> SELECT x.family >> FROM ( >> SELECT f.idFamily AS 'family', p.name AS 'name' >> FROM family f >> LEFT OUTER JOIN person p ON p.idFamily = f.idFamily >> AND p.name LIKE 'peter' >> ) x >> WHERE x.name IS NULL >> > > Well, I'm curious, did it work? Sorry to left that unanswered, but I was on holidays last days. Well in fact I didn't test it yet, but I guess it will work. Unfortunately, this query is part of a bigger query so I don't know if it's not too complicated to get good perfs. Maybe I will need to redifined better my needs, or try some other way to filter my data. For now I'm quite on standby, but anyway thanks for your answer ! -- Hugo | |||
| Featured Websites | ||||
|
![]() |
| Tags: basic, clause |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
| |
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Basic Question | P. Tierney | Graphics in general | 4 | 06-11-2007 6:35 PM |
| union in from clause | clifden | Database | 4 | 05-31-2007 8:45 PM |
| 2 where clause in same statement Mysql 4.2 | Xavier Houppertz | Database | 3 | 05-31-2007 8:40 PM |
| Featured Websites | ||||
|