我有一个数据库有 2 个表 website
和 domains
,一个网站可以存储多个域,我正在创建一个 view
:
create view website_infor
as
select
w.name 'Website Name',
(
select url
from domains
where company_id = w.id
)
'Domains URL'
from
website w;
并且 SQL 响应错误:
Error Code: 1242. Subquery returns more than 1 row.
现在我想获取所有域与网站 ID 的匹配,有人可以帮助我吗? 非常感谢,抱歉我的英语太差了。
最佳答案
其他答案建议的 JOIN
将为每个网站返回多行数据(每个域一个)。如果您只想为每个网站获取一行数据,请改用 GROUP_CONCAT
即
create view website_infor
as
select
w.name 'Website Name',
(
select GROUP_CONCAT(url)
from domains
where company_id = w.id
)
'Domains URL'
from
website w;
例如,如果您有一个引用 example.net 和 example.com 的网站示例,JOIN
将返回两行:
Website Name | Domains URL
-------------|------------
example | example.net
-------------|------------
example | example.com
-------------+------------
而 GROUP_CONCAT
将返回一行:
Website Name | Domains URL
-------------|-------------------------
example | example.net, example.com
-------------+-------------------------
关于mysql - *SQL 错误 : Error Code: 1242. 子查询返回多于 1 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49248588/