我的工会工作了吗?

时间:2013-04-18 14:24:19

标签: mysql join union

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

1 个答案:

答案 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 |

See a demo