我们正在制作一个学校版的Facebook aka Tigerbook。我们创建了以下三个数据表。
用户:
user name
1 Hallie
2 Dylan
3 Sarina
4 Dominic
朋友:
user friend
1 2
1 3
1 4
2 1
3 1
4 1
2 4
4 2
3 2
2 3
文章:
user postid post
1 101 This is TigerBook!
2 102 I am pregnant.
1 103 I like peeps
4 104 Giant Buzz Lightyears rock.
3 105 Die Tucker die
1 106 Murhur de derpity derp
2 107 banana spaghetti squid
4 108 chicken
我们只使用了以下语法:
select user from users union select user from friends union select user from posts;
它提出了这个:
user
1
2
1
4
我们想知道的是,加入是否有效,或者我们是否应该尝试别的东西。我们已经尝试过左连接和完全连接,但没有任何效果很好。
并且旁注:当我们将php代码连接到网页时,它会在用户创建登录时自动生成用户,还是我们必须在用户登录之前创建用户?
答案 0 :(得分:1)
那显然不是JOIN
... UNION
删除了所有三个表格中user
的重复项。所以要回答你的问题,UNION
工作。如果您希望JOIN
用户发帖,则需要
SELECT a.user, a.name, b.postid, b.post
FROM users a
JOIN posts b ON b.user = a.user
这会产生
| USER | NAME | POSTID | POST | --------------------------------------------------------- | 1 | Hallie | 101 | This is TigerBook! | | 2 | Dylan | 102 | I am pregnant. | | 1 | Hallie | 103 | I like peeps | | 4 | Dominic | 104 | Giant Buzz Lightyears rock. | | 3 | Sarina | 105 | Die Tucker die | | 1 | Hallie | 106 | Murhur de derpity derp | | 2 | Dylan | 107 | banana spaghetti squid | | 4 | Dominic | 108 | chicken |