0

我们现在正在制作学校版的 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 代码连接到网页时,它会在创建登录时自动生成用户,还是我们必须在用户登录之前创建用户?

4

1 回答 1

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

这产生

| 用户 | 姓名 | 邮政编码 | 发布 |
-------------------------------------------------- --------
| 1 | 哈莉 | 101 | 这是虎书!|
| 2 | 迪伦 | 102 | 我怀孕了。|
| 1 | 哈莉 | 103 | 我喜欢偷看|
| 4 | 多米尼克 | 104 | 巨大的巴斯光年岩石。|
| 3 | 萨丽娜 | 105 | 模具塔克模具 |
| 1 | 哈莉 | 106 | Murhur de derpity derp |
| 2 | 迪伦 | 107 | 香蕉意大利面鱿鱼| 高分辨率照片| CLIPARTO
| 4 | 多米尼克 | 108 | 鸡|

查看演示

于 2013-04-18T14:28:04.187 回答