Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL连接不是真正的结果_Sql - Fatal编程技术网

SQL连接不是真正的结果

SQL连接不是真正的结果,sql,Sql,我有一个包含一些表的数据库,我想从一个用户检索我遵循的最后8个用户: 这是我的桌子: 表格用户: - id - name - surname - created - modified 2 | Caesar | Surname1 3 | Albert | Surname2 4 | Paul | Surname3 5 | Nicol | Surname4 桌上三通 - id - name - user_id 1 | first | 3 2 | second | 3 3 | third

我有一个包含一些表的数据库,我想从一个用户检索我遵循的最后8个用户: 这是我的桌子: 表格用户:

- id
- name
- surname
- created
- modified

2 | Caesar | Surname1 
3 | Albert | Surname2
4 | Paul   | Surname3
5 | Nicol  | Surname4
桌上三通

- id
- name
- user_id

1 | first | 3
2 | second | 3
3 | third | 4
4 | fourth | 4
5 | fifth | 5
6 | sixth | 5
7 | seventh | 5
表用户跟踪

- id 
- user_follower_id //the user that decide to follo someone
- user_followed_id //the user that I decide to follow

1 | 2 | 3
2 | 2 | 5
我希望通过其创建者检索此T恤,因为我的id为2我是凯撒,例如:

1 | first | 3
2 | second | 3
5 | fifth | 5
6 | sixth | 5
7 | seventh | 5
例如,如果我跟踪的用户创建了4个tee,我跟踪的另一个tee为1,另一个tee为2,我认为我可以检索所有站点中最后插入的tee,因为它们是从我跟踪的用户创建的。 但我只检索到一个用户的一个tee

这是我的疑问:

SELECT *, `tee`.`id` as id, `tee`.`created` as created, `users`.`id` as user_id, `users`.`created` as user_created 
FROM (`tee`) 
LEFT JOIN `users` 
ON `users`.`id` = `tee`.`user_id` 
LEFT JOIN `user_follow` ON `tee`.`user_id` = `user_follow`.`user_followed_id` 
WHERE `tee`.`id` != '41' AND 
      `tee`.`id` != '11' AND
      `tee`.`id` != '13' AND
      `tee`.`id` != '20' AND
      `tee`.`id` != '14' AND 
      `tee`.`id` != '35' AND
      `tee`.`id` != '31' AND
      `tee`.`id` != '36' AND
      `user_follow`.`user_follower_id` = '2' 
ORDER BY `tee`.`created` desc LIMIT 8
我添加了8个我不想检索的tee id,因为它们是特殊的

为什么这个查询不起作用? 我认为问题在于左连接,或者我必须做其他事情来恢复这个结果


谢谢

您可以在'41'、'11'、,。。。而不是tee.id!='41'和T.id!='11'...

您可以在'41','11',中使用Not,。。。而不是tee.id!='41'和T.id!='11’…

使用UNION子句。首先选择您的T形三通,然后从您跟随的人中选择T形三通。

使用UNION子句。首先选择您的t形三通,然后从您关注的人中选择t形三通。

我看不出您的查询有任何错误-我已更新了使用内部联接和使用NOT IN的语法:


我看不出您的查询有任何错误-我已更新了使用内部联接和不在中的语法:


不起作用的意思是…?我写过,我只检索一个t行,而不是多个,因为我从我的follower中插入了更多的t。您可以发布示例数据和所需的结果-您的查询没有严重错误。你可以用NOT-IN代替所有这些和语句。此外,无需在用户\ follow表上使用外部联接,因为您将该表包括在WHERE条件中。但是您的查询应该运行…很抱歉问这个问题,但我看到有人有这样的误解:您是直接在db查询工具中使用SQL,还是使用其他语言查看结果?例如,在php中,使用默认的db方法,您需要在结果上循环以获得所有行添加一个示例@sgeddes不起作用意味着…?我写道,我只检索了一个t形行,而不是多个,因为我从后面插入了更多的t形行。您可以发布示例数据和所需结果-您的查询没有严重错误。你可以用NOT-IN代替所有这些和语句。此外,无需在用户\ follow表上使用外部联接,因为您将该表包括在WHERE条件中。但是您的查询应该运行…很抱歉问这个问题,但我看到有人有这样的误解:您是直接在db查询工具中使用SQL,还是使用其他语言查看结果?例如,在php中,使用默认的db方法,您需要在结果上循环以获得所有行添加一个示例@sgedtest这不是问题的问题这不是问题的问题您能举个例子吗?对不起,我没有时间。你自己试试看,如果不行,我会检查的。你能举个例子吗?对不起,我没有时间。你自己试试看,如果不行,我会检查的。
SELECT *, 
    `tee`.`id` as id, `tee`.`created` as created, `users`.`id` as user_id, `users`.`created` as user_created 
FROM `tee`
    JOIN `users` ON `users`.`id` = `tee`.`user_id` 
    JOIN `user_follow` ON `tee`.`user_id` = `user_follow`.`user_followed_id` 
WHERE `tee`.`id` NOT IN (41,11,13,20,14,35,31,36) 
    AND `user_follow`.`user_follower_id` = '2' 
ORDER BY `tee`.`created` desc 
LIMIT 8