从2表中获取结果,其中id不等于1

时间:2014-12-20 08:28:46

标签: mysql

我有2张桌子" 请求"和" 个人资料"。我想查询两个表并从配置文件获取结果,其中值 NOT EQUAL 到" 1 "在请求表上的 request_req1 列和 request_req2 上。

请求

enter image description here

配置文件

enter image description here

目前MySQL查询正在使用

SELECT 
    profiles.profile_id, 
    profiles.profile_pub_key, 
    profiles.profile_photo, 
    profiles.profile_username, 
    profiles.profile_name, 
    requests.request_req1, 
    requests.request_req2
FROM 
    PROFILES 
INNER JOIN 
    requests ON requests.request_req1 <> 1
INNER JOIN 
    requests ON requests.request_req2 <> 1
WHERE 
    profiles.profile_id <> 1 
ORDER BY 
    RAND() 
LIMIT 2

上述查询返回MySQL语法错误。请帮忙,我在这里做错了什么。

2 个答案:

答案 0 :(得分:1)

尝试它是否适合您:

   SELECT 
        P.profile_id, 
        P.profile_pub_key, 
        P.profile_photo, 
        P.profile_username, 
        P.profile_name, 
        R.request_req1, 
        R.request_req2
    FROM 
        PROFILES P
    INNER JOIN 
        requests R
    ON (R.request_req1 <> 1 AND R.request_req2 <> 1)
    WHERE P.profile_id <> 1 
    ORDER BY RAND() 
    LIMIT 2

答案 1 :(得分:1)

尝试此查询:

SELECT 
profiles.profile_id, 
profiles.profile_pub_key, 
profiles.profile_photo, 
profiles.profile_username, 
profiles.profile_name, 
requests.request_req1, 
requests.request_req2
FROM 
    PROFILES 
    INNER JOIN 
    requests 
    ON  requests.request_req1 = PROFILES.request_req1
    AND requests.request_req2 = PROFILES.request_req2
WHERE profiles.profile_id <> 1 
AND   requests.request_req2 <> 1
AND   requests.request_req1 <> 1
ORDER BY RAND() 
LIMIT 2