猿问

在sql查询中使用多个OR选择DISTINCT

我正在尝试使用多个 OR 编写一个查询,并对多个列使用 DISTINICT。但结果是 NULL 我在查询中缺少的内容。任何人都可以在这里帮助我。


SELECT DISTINCT 

   P.user_p_id, 

   P.surl, 

   M.user_id, 

   M.user_p_id 

   FROM users P, page M 

   WHERE (P.user_p_id = '$urlid' OR P.surl = '$urlid' OR M.user_id = '$urlid' OR M.user_p_id = '$urlid')



慕仙森
浏览 196回答 1
1回答

12345678_0001

您应该使用 ON 子句进行适当的连接:SELECT DISTINCT    P.user_p_id,    P.surl,    M.user_id,    M.user_p_id    FROM users P INNER JOIN page M    ON M.user_id = P.user_p_id   WHERE '$urlid' IN (P.user_p_id, P.surl, M.user_id, M.user_p_id)我使用ON M.user_id = P.user_p_id虽然不清楚是否要匹配这些列。如果这是您需要的,您可以将 JOIN 的类型更改为 LEFT。
随时随地看视频慕课网APP
我要回答