mysql - 创建查询以确定哪些 sub_genres 来自哪些区域
问题描述
SELECT Sub_Genre.sgid, Sub_Genre.sgname, Region.rname
FROM Sub_Genre AS S, Region AS R
JOIN Band_Styles AS bSty ON bSty.sgname=S.sgname
JOIN Band_Origins AS bOri ON bOri.bname=bSty.bname
JOIN Country AS C ON C.cname=bOri.cname
JOIN Region ON R.rname=C.rname
ORDER BY S.sgid;
我正在尝试创建一个查询来确定哪些 sub_genres 来自哪些地区。我不断收到错误代码 1054。“字段列表”中的未知列“Sub_Genre.sgid”
解决方案
不要混合显式和隐式连接。一致地使用标准的显式连接。
表region
在查询中出现两次,第一次出现在带有别名的隐式连接中,然后出现在没有别名的标准连接中。这很可能不是您想要的。
子句中的列以select
整个表名为前缀,而from
子句中的表为别名:不支持。
这将是表达逻辑的一种更简洁的方式:
select s.sgid, s.sgname, r.rname
from sub_genre s
join band_styles bsty on bsty.sgname = s.sgname
join band_origins bori on bori.bname = bsty.bname
join country c on c.cname = bori.cname
join region r on r.rname = c.rname
order by s.sgid;
这解决了语法问题。这是否给出了正确的结果是另一回事:你没有分享你正在使用的结构和数据,所以我不能说。
推荐阅读
- css - 右对齐行内列中的内容
- python - 在 Openpyxl (Python) 中绘制边框而不覆盖以前的边框
- php - Laravel Eloquent 关系(5 表)
- javascript - 如何在javascript中操作系统的默认图像查看器上打开表单输入图像?
- python - 有没有办法在 Python 中的变量声明中将变量名作为字符串引用?
- wireshark - Wireshark/QUIC - 无法解密 QUIC
- api - Google Books API 品牌合规性问题--infoLink 返回“未找到”页面
- django - 更改 Django Rest Framework 默认路由器 api 根?
- google-bigquery - BigQuery 到 GCS 和 GCS 到 Mysql
- javascript - 按下按钮后如何使用if函数显示不同的图像