mysql - "in" 在这个位置无效
问题描述
我不确定mysql语句有什么问题。错误说“IN 在这个位置无效,期待:EOF,';'
这是我的sql语句:
CREATE VIEW collab AS
SELECT a.author_name AS Author, ca.no0fCollab
FROM (SELECT * FROM author) as a, (SELECT * FROM coauthors) as ca
WHERE a.author_id = ca.author_id
AND a.author_id IN (
SELECT UA.author_id
FROM uniq_authored UA JOING publication p
ON P.pubid = UA.pubid
WHERE (p.pubkey LIKE 'journals/%' OR p.pubkey LIKE 'conf/%')
AND p.title LIKE '%data%'
);
解决方案
您不能在视图中使用 FROM( subquery)
但您不需要 ....您可以使用 join 重构查询并避免子查询
CREATE VIEW collab AS
select a.author_name Author, ca.no0fCollab
FROM author a
INNER JOIN coauthors ca ON a.author_id = ca.author_id
INNER JOIN uniq_authored ua ON a.author_id = ua.author_id
INNER JOIN publication p ON P.pubid = ua.pubid
AND (p.pubkey LIKE 'journals/%' OR p.pubkey LIKE 'conf/%')
AND p.title LIKE '%data%'
推荐阅读
- node.js - 如何使用其他列更新列?
- node.js - 如何加载网站和调试节点应用程序?
- android - Android Native Library 未能建立在不同的架构上
- boost-spirit - 使用替代解析器提升精神替代解析器空值处理
- python - Python使用推导根据特定键将多个字典的列表合并到一个列表中
- php - 如何在 PHP 中获取第一个“ABC”之前的所有字符串
- django - Wagtail Cms 是否支持 Google 登录和用户登录添加会话
- c++ - 为什么RES保持缓慢增长?
- python - Django 2.1.5 以上版本:如何设置 urls.py 以允许 get 方法工作?
- java - 解析 Java 方法参数