2014-11-08 94 views
0

什么是写这个sql查询如何正确使用WHERE子句编写这个SQL查询?

select * from articles where id = 1; 
select * from users where id = user_id in articles table; 

我的问题是如何写的第二个SQL语句正确

+0

取决于您期望的结果。无论是用户,还是文章和用户的对应信息。 – Uhla 2014-11-08 15:54:46

回答

0
select * from users where user_id in (select id from articles); 

与例如文章内选择了额外的滤波以正确的方式。再次取决于所要求的结果。

0
SELECT * 
FROM articles 
INNER JOIN users ON articles.id = users.user_id 
WHERE id = '1' 

或者使用它作为一个子查询

SELECT * 
FROM users 
WHERE user_id IN (SELECT ID 
        FROM articles 
        WHERE id = '1') 
+0

ID通常是数字,恕我直言,这将是更好的避免在这里的类型转换 – Uhla 2014-11-08 15:56:53

+0

通常是啊,但那就是为什么我给两个 – Matt 2014-11-08 15:57:29

1

从你的问题,我无法明白你真正需要的。我认为你需要内连接两个表。下面的查询将通过连接两个表为您提供结果,并且它将考虑ARTICLES表中的USER_ID列表示USERS中的ID列。

SELECT * FROM USERS INNER JOIN ARTICLES ON USERS.ID = ARTICLES.USER_ID WHERE USERS.ID = 1; 
相关问题