使用带多个条件的左连接SQL
我正在尝试创建一个应用程序,该应用程序将显示所有其他非登录用户或登录用户未遵循的用户(如浏览页面),但我在编写SQL查询时遇到了问题 我的表格设置为:使用带多个条件的左连接SQL,sql,outer-join,Sql,Outer Join,我正在尝试创建一个应用程序,该应用程序将显示所有其他非登录用户或登录用户未遵循的用户(如浏览页面),但我在编写SQL查询时遇到了问题 我的表格设置为: following(username1, username2) (意思是username1跟在username2后面) 及 现在我正在尝试做一些类似的事情: SELECT * FROM users u LEFT JOIN following f ON ( u.username != 'loggedInUser' AND f.usern
following(username1, username2)
(意思是username1跟在username2后面)
及
现在我正在尝试做一些类似的事情:
SELECT * FROM
users u
LEFT JOIN following f ON (
u.username != 'loggedInUser'
AND f.username1 = 'loggedInUser'
AND f.username2 = u.username
)
我在Python脚本中替换了loggedInUser
不幸的是,此查询当前正在返回我的所有用户,不应该返回。由于某种原因,我在使用此逻辑时遇到了很多问题,有人对此有什么见解吗?这将显示不是
登录用户的所有其他用户,以及登录用户不遵循的(非或):
如果您需要获取所有未被登录用户跟踪的用户,请尝试下面的脚本
SELECT * FROM
users u
where u.username in(select username2 from following where username1!= 'loggedInUser')
and u.username!='loggedInUser'
为什么不在位类型的用户中创建一个新列,当任何用户登录时,该列将被更新。然后你只需要写一个简单的查询
从loggedIn=1的用户中选择*
这将返回具有登录状态的所有用户数据示例数据,其输出是helpfulLearn left join返回的内容:内部联接行加上由null扩展的不匹配的左表行。始终知道作为左连接的一部分,您需要什么样的内部连接。这似乎并没有解决问题的要点,即包括以下表中链接的用户。我已经向她解释了另一种工作方式,这可能对她有所帮助。做同一件事有多种方法,我已经向她解释了简单有效的方法。
SELECT *
FROM users u
WHERE u.username <> 'loggedInUser'
AND NOT EXISTS (
SELECT 1
FROM following f
WHERE f.username1 = 'loggedInUser'
AND f.username2 = u.username
);
SELECT DISTINCT u.*
FROM users u
INNER JOIN following f
ON f.username1 <> 'loggedInUser'
OR f.username2 <> u.username
WHERE u.username <> 'loggedInUser';
SELECT * FROM
users u
LEFT JOIN following f ON u.[insert_primary_key_here]=f.[insert_foreign_key_here]
WHERE u.username != 'loggedInUser'
AND f.username1 = 'loggedInUser'
AND f.username2 = u.username
SELECT * FROM
users u
where u.username in(select username2 from following where username1!= 'loggedInUser')
and u.username!='loggedInUser'