如果我在查询中加入两个表:
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从成员表中获取的所有详细信息。
最好的方法是什么?
答案 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) )