加入表查询

时间:2011-01-25 12:33:15

标签: mysql

如果我在查询中加入两个表:

SELECT m1.id AS reg, m1.name AS name, f.registered AS status 
FROM phone f 
INNER JOIN members m1 ON m1.id=f.user_id 
WHERE m1.status='1' AND f.registered='1'

然后我想在m1.id IN (014,01284,014829,075090)这样的数组中添加另外10个用户ID,这些数据也应该在查询结果中列出。我想避免在查询中使用第三个表,因为我已经知道了我需要的表中的用户。

关键是最终结果包含用户通过电话表和数组中列出的ID从成员表中获取的所有详细信息。

最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

似乎有点微不足道,所以也许不是你需要的,但是这样吗?

SELECT m1.id AS reg, m1.name AS name, f.registered AS status 
FROM phone f 
INNER JOIN members m1 ON m1.id=f.user_id 
WHERE 
 (m1.status='1' AND f.registered='1')
OR
 (m1.id IN (014,01284,014829,075090) )

答案 1 :(得分:0)

INNER JOIN将所有结果限制为在连接表中具有匹配项的结果,但这听起来并不像您想要的那样

我认为如果你将INNER JOIN改为LEFT JOIN

,Nanne的答案将会有效
SELECT m1.id AS reg, m1.name AS name, f.registered AS status 
FROM phone f 
LEFT JOIN members m1 ON m1.id=f.user_id 
WHERE 
 (m1.status='1' AND f.registered='1')
OR
 (m1.id IN (014,01284,014829,075090) )