如何组合这些选择/连接?

时间:2012-02-27 19:43:39

标签: mysql sql join

所以我一直在努力做到这一点并提出了我想这是我想要做的基础知识。我有四张桌子。一个是带有用户信息的表格,它会说“这是您获取信息的用户”。其他三个人都有我需要的实际信息。

table_1包含哪个用户的信息。所以用户身份。

table_2具有与table_3的内容相关的用户唯一的标题和描述。 table_3具有所有基本信息。任何用户都可以在table_3中拥有相同的行。 table_3说“这是内容”,table_2说“这就是这个特定用户与table_3的关系。

table_4是table_2行的组。

所以用户可以说我想要这张照片,视频,无论是什么在“酷东西”组。一旦将所有信息添加到数据库,您将获得用户想要的组内的基本内容信息(table_3)(table_4),并且它将是用户特定的内容,因为它将添加带有table_2的内容。

实际上将所有信息都放入数据库很容易。将它拉出并放在一起是我感到困惑的地方。每个ON部分都是相关的。我的数据库是innodb,我设置了外键,例如在第一个SELECT table_2上.userId是table_1.id的外键。

我最终想要的是一个标题,描述,链接,groupName的数组。我正在使用带有mysql的php,但我想如果能够真正得到我需要的正确查询或查询,我可以弄明白我需要做什么。

如果需要更多信息,请告诉我,以便我可以更清楚地做些事情。

SELECT tile, description
FROM table_2
INNER JOIN table_1
ON table_2.userId = table_1.id

SELECT link
FROM table_3
INNER JOIN table_2
ON table_3.id = table_2.table_3Id

SELECT groupName
FROM table_4
INNER JOIN table_2
ON table_4.id = table_2.table_4Id

2 个答案:

答案 0 :(得分:1)

SELECT tile, description, link, groupName
FROM table_2
JOIN table_1 ON table_2.userId = table_1.id
JOIN table_3 ON table_3.id = table_2.table_3Id
JOIN table_4 ON table_4.id = table_2.table_4Id

答案 1 :(得分:1)

将您的查询合并到具有多个联接的单个查询中。

这样的事情:

SELECT tile, description, link, groupName
FROM table_2
INNER JOIN table_1  
ON table_2.userId = table_1.id
INNER JOIN table_2   
ON table_3.id = table_2.table_3Id    
INNER JOIN table_2   
ON table_4.id = table_2.table_4Id