Mysql where子句中包含大小写的未知列
这里出了什么问题,还是丢失了Mysql where子句中包含大小写的未知列,mysql,Mysql,这里出了什么问题,还是丢失了 SELECT CASE WHEN (f_username = '$username' AND table1.code = table2.code) THEN '1' ELSE '0' END as is_favorite FROM ( SELECT * FROM favorites WHERE f_username='$username' AND code
SELECT CASE WHEN (f_username = '$username' AND table1.code = table2.code) THEN '1'
ELSE '0'
END as is_favorite
FROM (
SELECT *
FROM favorites
WHERE f_username='$username'
AND code = table2.code
) table1
INNER JOIN (
SELECT *
FROM groups
WHERE gname LIKE '%$text%'
) table2
这是一个错误
“where子句”中的未知列“table2.code”
编辑
我有两张桌子,一组/最喜欢的
集团结构为:
gname/代码
收藏夹结构为:
代码/f_用户名
我要找的是,我想得到特定查询中的组列表,并且我想根据用户名检查每个组的收藏夹,如果他添加为收藏夹或不是收藏夹。有什么问题或遗漏了什么?您在第一个子查询中引用的是表别名table2。该别名不在该子查询的范围内,因为您只将其定义为第二个子查询的别名。这是SQL:AND code=table2.code中令人不快的地方。查询解析器没有访问您的SELECT子句,因为它试图先找出哪些列是可用的 您的查询具有奇怪的结构。你可能应该考虑简单地加入这样的表格。
SELECT whatever
FROM favorites f
JOIN groups g ON f.code = g.code
WHERE f.f_username = '$username'
AND g.gname LIKE '%$text%'
但是你没有显示任何样本数据或解释你想要的结果,所以我猜。我想这就是你想要的:
SELECT gname, CASE WHEN favorites.code IS NULL THEN '0'
ELSE '1'
END as is_favorite
FROM groups
WHERE WHERE gname LIKE '%$text%'
LEFT JOIN favorites ON groups.code = favorites.code
是否确实没有将table2的“代码”列别名为其他名称?MySQL抱怨此列不存在,请检查您是否未将其命名为其他名称或别名。我确定。“组”表和“收藏夹”表具有代码列SELECT table1.code,table1.f_username FROM SELECT code,来自dbo.favorites的f_用户名,其中f_用户名=“$username”和代码=表2.code作为表1内部连接选择gname,来自dbo.groups的代码,其中gname类似“%$text%”作为table1上的table2。code=table2.code尝试上面的代码…在FROM SELECT*中,您将加入table2。代码在那里不存在这工作正常,但我要寻找的是,当我得到一些组时,我想检查用户是否添加到收藏夹其他表中,例如:两个组group1、group2,用户名是abdulaziz,他们将group2添加到收藏夹中