Вопрос

I have two tables.

TABLE FRIENDS - Columns/Values

ID, FRIEND_ID, FRIEND_NAME

1, 34, DAMON

1, 17, RICHARD

1, 56, DANIEL

1, 65, CHARLIE

2, 15, PRISCILA

2, 17, RICHARD

2, 45, JOHN

2, 56, DANIEL

TABLE USERS - Columns/Values

USER_ID, NAME

1, JUNIOR

2, SAMANTHA

15, PRISCILA

45, JOHN

56, DANIEL

How do I do a SELECT that query all the rows from table FRIENDS where friends.USER_ID = X and cross reference with all the rows in table USERS where the friends.FRIEND_ID = users.USER_ID.

Basically I want to query all the friends of a user(from table FRIENDS, identified by friend_id) that also exist in the table USERS(if they exist in the table friends.FRIEND_ID = users.USER_ID).

Sorry for the bad english, it's not my native language.

Это было полезно?

Решение

This "cross" of data is aptly named a "JOIN". There are different flavors of JOINs, but for you, a simple "inner" join should suffice:

SELECT
    f.*
FROM
    FRIENDS f
JOIN
    USERS u
    ON
    r.FRIEND_ID = u.USER_ID
WHERE
    f.FRIEND_ID = ...

Другие советы

First solution : using JOIN

SELECT f.* 
FROM friends f JOIN users u ON u.USER_ID = f.FRIEND_ID 
                           AND u.USER_ID = '?'

Second solution : using EXISTS

SELECT f.* 
FROM friends f 
WHERE EXISTS (SELECT * 
              FROM users 
              WHERE USER_ID = f.FRIEND_ID 
                AND USER_ID = '?')
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top