首页 > 解决方案 > SQL 查询不返回值

问题描述

我在我的 php 应用程序上运行了一些 SQL,它的意思是返回一个与返回的值进行比较的值。

该查询返回我需要的 4 个值中的两个。

我试图调整查询,以便它只返回根本不显示的另外两个

这是查询

SELECT projects.ProjectProperty1, projects.ProjectProperty2, users.UserProperty1, users.UserProperty2
FROM projects,
     users
WHERE projects.ProjectProperty1 LIKE CONCAT('%', users.UserProperty1, '%')
   OR projects.ProjectProperty2 LIKE CONCAT('%', users.UserProperty2, '%')

返回:https ://gyazo.com/a8a2961166de9c22d9bbf858b3d765b8

项目数据库:https ://gyazo.com/8088ea417f0d4804489621948b989068

用户数据库:https ://gyazo.com/e43e58857a21239e827a59d4864d099a

在网站上:https ://gyazo.com/2dc7da5855506f512e3737809cd48cee

我需要获取用户数据库中缺少的两个值。

提前致谢!

标签: mysqlsql

解决方案


试试这个来获取项目和用户表中的匹配值:

SELECT p.ProjectProperty1, p.ProjectProperty2, u.UserProperty1, u.UserProperty2
FROM projects
Inner Join users u on p.Id= u.Id
WHERE p.ProjectProperty1 LIKE CONCAT('%', u.UserProperty1, '%')
   OR p.ProjectProperty2 LIKE CONCAT('%', u.UserProperty2, '%')

试试这个来获取用户表中的所有值,并且只从项目表中获取匹配的值:

 SELECT p.ProjectProperty1, p.ProjectProperty2, u.UserProperty1, u.UserProperty2
    FROM projects
    Right Join users u on p.Id= u.Id
    WHERE p.ProjectProperty1 LIKE CONCAT('%', u.UserProperty1, '%')
       OR p.ProjectProperty2 LIKE CONCAT('%', u.UserProperty2, '%')

推荐阅读