Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql连接其他表搜索_Mysql_Sql_Join_Left Join - Fatal编程技术网

mysql连接其他表搜索

mysql连接其他表搜索,mysql,sql,join,left-join,Mysql,Sql,Join,Left Join,所以基本上我有一个表:usersSearchCache,它有一个objectId,objectId 链接到公司表的id,我需要在用户缓存中搜索公司的关键字匹配的位置 上面的查询不起作用,但我不明白为什么。我们在用户表中找到了用户,所有这些用户都可以访问对象的页面,当他们访问这些页面时,会在表userSearchCache中创建一条新记录 SELECT * FROM companies as C LEFT JOIN usersSearchCache as UC ON C.id = UC.objec

所以基本上我有一个表:usersSearchCache,它有一个objectId,objectId 链接到公司表的id,我需要在用户缓存中搜索公司的关键字匹配的位置


上面的查询不起作用,但我不明白为什么。

我们在用户表中找到了用户,所有这些用户都可以访问对象的页面,当他们访问这些页面时,会在表userSearchCache中创建一条新记录

SELECT * FROM
companies as C
LEFT JOIN usersSearchCache as UC ON C.id = UC.objectId
WHERE UC.userId = ? AND C.keywords LIKE ?
返回类似于

select * FROM userSearchCache UC
where UC.userId = ?
现在我得到的是一个搜索字段,用户在其中插入他们想要搜索的对象的名称,因此当前查询是:

userId,objectId
1,123
1,345
要查找“biking”,我将使用“%biking%”之类的

JOIN companies C ON UC.object_id=C.id

userId,objectId,keywords
1,123,"yoga,savate,pilates"
1,345,"tennis,biking,soccer"

您的关键字参数是否已包含通配符“%”

能否发布错误以及执行此命令所用的一些代码?以及您提供的参数。。你的预期结果呢?你是得到了一个错误,还是没有结果?你能添加一个完整的查询并替换吗?我没有得到任何错误或结果,但我确信参数是正确的。如果你能发布一些代码让我们看看,这会有所帮助。。除了询问您是否尝试在mysql中使用其参数手动运行该命令,以及这些表是否有任何数据可以满足查询的要求之外,我不知道还有什么其他方法可以帮助您?如果您在WHERE子句中引用UC别名(就像您一样),那么您的左连接实际上充当常规连接。
select * 
FROM userSearchCache UC
JOIN companies C ON UC.object_id=C.id
where UC.userId = ? AND c.keywords LIKE '%'+?+'%'