O拥有一个带有"客户端"表的MySQL数据库:
id_client(主(
name_cliet(唯一(
一个"帐户"平板电脑与:
id_account(主(
name_account(唯一(
以及多对多的"客户账户":
id_client_account(主(
id_client(用户fk(
id_account(账户的fk(
我需要:查找*从客户那里。。。。。在这种情况下,我需要帮助,我需要至少有一个帐户的客户,而这个帐户只有这个客户。示例:带有示例数据的客户端表:
1,John
2、Alex
3、Steve
带有示例数据的账户表:
1、节省
2、银行
3、学校
带有示例数据的Client_Account表:
1,1,1("John"有一个"储蓄"账户(
1,2,3("lex"有一个"school"帐户(
1,3,1("eve"有一个"储蓄"账户(
需要SQL显示:
2、Alex
因为它是唯一一个至少有一个账户的客户,也是该账户的唯一所有者
使用联接,然后使用客户端GROUP BY
,并使用HAVING
子句来检查count(*)
是否恰好为一。
SELECT c.id_client,
c.name_client
FROM client c
INNER JOIN client_account ca
ON ca.id_client = c.id_client
INNER JOIN account a
ON a.id_account = ca.id_account
GROUP BY c.id_client,
c.name_client
HAVING count(*) = 1;