Re: Join three tables and specify criteria... I know this should be easy!
| От | Naresh Kumar |
|---|---|
| Тема | Re: Join three tables and specify criteria... I know this should be easy! |
| Дата | |
| Msg-id | CAHuWDLiXUEMJ_Xp6MN8SbAG9WwzVZrNkECcxd1M7bveSisYfpg@mail.gmail.com обсуждение исходный текст |
| Ответ на | Join three tables and specify criteria... I know this should be easy! (Paul Linehan <linehanp@tcd.ie>) |
| Ответы |
Re: Join three tables and specify criteria... I know this
should be easy!
|
| Список | pgsql-novice |
Hi Paul,
Try this, it should work
SELECT ul_user_id, user_name
FROM user_language ul
INNER JOIN language l ON ul.ul_iso_code = l.iso_code
INNER JOIN user u ON u.user_id = ul.ul_user_id
where l.language_name IN ('English', 'German')
group by ul_user_id, user_name having COUNT(*) > 1
-Naresh
On Fri, Aug 29, 2014 at 11:43 AM, Paul Linehan <linehanp@tcd.ie> wrote:
I haveHi all, having a bit of a brain burp day! :-)CREATE TABLE user(user_id INTEGER PRIMARY KEY,user_name VARCHAR(25),);CREATE TABLE language(iso_code CHAR(2) PRIMARY KEY,language_name VARCHAR(30));CREATE TABLE user_language(ul_user_id INT,ul_iso_code CHAR(2),PRIMARY KEY (ul_user_id, ul_iso_code),CONSTRAINT ul_user_id_fk FOREIGN KEY (ul_user_id) REFERENCES user (user_id),CONSTRAINT ul_iso_code_fk FOREIGN KEY (ul_iso_code) REFERENCES language (iso_code));
Then I input data thus.
INSERT INTO user VALUES(1, 'Sandor');INSERT INTO user VALUES(2, 'Gabor');
INSERT INTO language VALUES ('EN', 'English');INSERT INTO language VALUES ('DE', 'German');
INSERT INTO user_language VALUES(1, 'EN');INSERT INTO user_language VALUES(1, 'DE');INSERT INTO user_language VALUES(2, 'EN');
Now, I want the user who speaks English and the German - I may need to specify 3, 4
or conceivably even 5 languages.
I have done this, but I'm stuck :-)SELECT u.user_name, l.language_nameFROM user uJOIN user_language ulON u.user_id = ul.ul_user_idJOIN language lON ul.ul_iso_code = l.iso_code
this gives meSandor, GermanSandor, EnglishGabor, EnglishI really want Sandor's id - that's all that really counts.
Give me the ids of all who speak 'EN' and 'DE' (or
possibly 'EN', 'DE', 'NL' and 'FR') for example.TIA and rgs,Paul...
В списке pgsql-novice по дате отправления: