2014-10-18 131 views
0

我有三个表,活动,用户,位置。加入4个SQL表,3个源'一个容器'

活动具有列ID(自动增量)和活动名称(varchar 40)。

用户拥有ID和名称

位置具有ID和coordString

第四表的列activityID,用户ID,userActivityID存在。此表的目的是链接用户选择与其相关活动的ID。然后userActivityID是一个新的ID,用于链接到这个“相关”对象。

我该如何去做这件事?有人会建议一个更明智的数据结构吗?

谢谢大家一如既往。

+0

你尝试过什么吗?你知道'INNER JOIN'是如何工作的吗? http://www.mysqltutorial.org/mysql-inner-join.aspx – Horaciux 2014-10-18 12:23:01

+0

我尝试了INNER JOIN,但是我曾经大肆渲染过这个语法。感谢帖子,但:D – anthonyhumphreys 2014-10-18 12:47:21

回答

0

您需要的INNER JOIN,这应该是这样的(link_table被使用,因为你没有给表的名称):

SELECT activities.*, users.*, locations.* 
FROM activities, users, locations, link_table 
WHERE activities.id = link_table.activityID 
AND users.id = link_table.userID 
AND locations.id = link_table.locationID 

,或者你也可以写这样的:

SELECT activities.*, users.*, locations.* 
FROM link_table 
INNER JOIN users ON users.id = link_table.userID 
INNER JOIN locations ON locations.id = link_table.locationID 
INNER JOIN activities ON activities.id = link_table.activityID 
+0

谢谢!对不起,我忘了第四张桌子的名字xD 你已经保存了我的头发。 *手中喝啤酒* – anthonyhumphreys 2014-10-18 12:42:43

+1

接受的答案已经足够了,特别是因为我不喝酒:) – daxur 2014-10-18 20:13:22

+0

对不起,在这种情况下,您可以选择一杯咖啡或饮料!他们应该是一个在计算器上的捐赠按钮! – anthonyhumphreys 2014-10-19 13:35:00