Mysql '中的未知列;其中第'条;
我有简单的sql:Mysql '中的未知列;其中第'条;,mysql,sql,where,Mysql,Sql,Where,我有简单的sql: SELECT * FROM `oc_artists` WHERE `oc_artists`.`artist_id`=`oc_artists_tags`.`artist_id` AND `oc_artists_tags`.`artist_tag` LIKE '%klass%' 当我运行此程序时,我得到: 1054-where子句中的未知列“oc_Artisters_tags.Artister_id” 这是一个用于搜索脚本的sql。如果查询与oc\u artists
SELECT *
FROM `oc_artists`
WHERE `oc_artists`.`artist_id`=`oc_artists_tags`.`artist_id`
AND `oc_artists_tags`.`artist_tag` LIKE '%klass%'
当我运行此程序时,我得到:
1054-where子句中的未知列“oc_Artisters_tags.Artister_id”
这是一个用于搜索脚本的sql。如果查询与
oc\u artists\u标记匹配,我需要从oc\u artists\u简单返回唯一结果
artist\u标记
您的查询中缺少第二个联接表,因此在联接中包括oc\u artists\u标记
表
最后,您的查询应该是-
SELECT *
FROM `oc_artists`, `oc_artists_tags`
WHERE `oc_artists`.`artist_id`=`oc_artists_tags`.`artist_id`
AND `oc_artists_tags`.`artist_tag` LIKE '%klass%'
也可以使用连接或内部连接代替逗号连接-
SELECT *
FROM `oc_artists` as oa
join `oc_artists_tags` as oat on oa.artist_id=oat.artist_id
WHERE oat.artist_tag LIKE '%klass%';
要获得性能,请遵循以下几点-
你必须加入另一张桌子。帮助您。您也需要加入表
oc\u艺术家\u标签
,您可以通过两种方式实现这一点
选项1
SELECT *
FROM `oc_artists`
INNER JOIN `test2` on `oc_artists`.`artist_id`=`oc_artists_tags`.`artist_id`
AND `oc_artists_tags`.`artist_tag` LIKE '%klass%'
选项2
SELECT *
FROM `oc_artists`,`oc_artists_tags`
WHERE `oc_artists`.`artist_id`=`oc_artists_tags`.`artist_id`
AND `oc_artists_tags`.`artist_tag` LIKE '%klass%'
您还需要加入表oc_artists_标记。如果您还添加了查询的现代、显式联接版本,我将进行升级投票。