所以我写了这段代码,
SELECT
citizen_id, family_card_id,
(SELECT name FROM citizen WHERE clan_id = 6) AS nama,
(SELECT gender FROM citizen WHERE clan_id = 6) AS gender
FROM
fcn_citizen;
输出为...
错误:子查询返回的多于一行用作表达式
SQL状态:21000
有人知道问题出在哪里吗?感谢您回答^^
答案 0 :(得分:0)
这只是我的猜测。.也许这可以工作。.
SELECT
fcn_citizen.citizen_id, fcn_citizen.family_card_id,
Citizen.name as nama, Citizen.gender as gender
FROM
fcn_citizen
Inner Join Citizen on fcn_Citizen.Citizen_ID = Citizen.Citizen_ID
And Citizen.Clan_ID = 6;
如果要使用subquery
,则必须执行aggregate
或limit
。因为仅subquery
喜欢return 1 row
,所以您会显示错误。因此,Join
在您的情况下会做得更好。.您可以在此处阅读Join Documentation
答案 1 :(得分:0)
我认为SELECT名称FROM clan_id = 6的公民将返回多于1行。公民表可能具有clan_id = 6的多个记录。 如果在select中使用子查询,则它还必须仅返回一行,并且您可能有多个。