mysqli查询2个表,但只检索不在其他表中的结果

时间:2014-08-10 04:13:00

标签: php mysql mysqli

有没有办法制作单个查询语句?

left_table
id|group_id|member_id 
---------------------------------
1|10|100      
2|13|100
3|14|100
4|13|103
5|14|102

right_table
id|user_id|group_name 
-----------------------------------------
10|100|hundred  
11|101|hundredone
12|102|hundredtwo
13|103|hundredthree 
14|104|hundredfour

$query_id = 100
$results = mysqli_query($link, "SELECT * FROM right_table rt, left_table lt WHERE rt.user_id != '$query_id' and rt.id = lt.group_id and
lt.member_id != '$query_id'");
while ($r = mysqli_fetch_array($results)){
    echo $r['group_name'].'<br>';

}

当我同时查询表时,我只想从右表中检索组名 我的$ query_id不在left_table(member_id)

中 因为member_id 100不是其中的一部分,所以user_id 100的期望输出将是百分之一百 来自right_table的任何11和12组

1 个答案:

答案 0 :(得分:0)

SELECT group_name
FROM right_table rt
WHERE NOT EXISTS (
    SELECT 1
    FROM left_table lt
    WHERE lt.member_id = 100
    AND lt.group_id = rt.id
)