gpt4 book ai didi

mysql - 左外连接问题

转载 作者:行者123 更新时间:2023-11-29 04:28:05 26 4
gpt4 key购买 nike

我有三个表来管理不同的社交媒体帐户——facebook、twitter 和 linkedin。以下查询将返回 facebook 帐户正常但没有别的 - 我做错了什么?每个表都通过 user_id 字段链接,但每条记录也有自己的 ID 字段。

SELECT 
bla_facebook_accts.id as facebook,
bla_linked_in_accts.id as linkedin,
bla_twitter_accts.id as twitter
FROM
bla_facebook_accts
LEFT OUTER JOIN
bla_linked_in_accts
ON
(bla_linked_in_accts.user_id = bla_facebook_accts.user_id)
LEFT OUTER JOIN
bla_twitter_accts
ON
(bla_linked_in_accts.user_id = bla_twitter_accts.user_id)
WHERE bla_facebook_accts.user_id = '12';

任何我出错的想法 - 我只是希望它返回一行,如果用户在每个网络上都有一个帐户 - 即 - 每个表中的记录

最佳答案

您查询的问题是,如果用户没有 facebook 帐户,那么您将无法获得有关该用户的任何信息。如果用户没有 linkedin 帐户,那么您将无法获得有关其 Twitter 帐户的信息。 LEFT JOINS 不适用于此目的,但 MySQL 不支持 FULL OUTER JOINS,因此作为解决方法,您可以执行以下操作:

select
(select id from bla_facebook_accts where user_id = user.user_id) as facebook,
(select id from bla_linked_in_accts where user_id = user.user_id) as linkedin,
(select id from bla_twitter_accts where user_id = user.user_id) as twitter
from
(select 12 user_id) user

关于mysql - 左外连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7360072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com