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

标签 mysql sql join

所以我一直在考虑这样做,并想出了我想这是我想做的事情的基础。我有四张 table 。其中一个只是包含用户信息的表格,其中会显示“这是您正在获取信息的用户”。其他三个有我需要汇总的实际信息。

table_1 包含有关哪个用户的信息。所以是用户 ID。

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 的外键。

最后我想要的是一个包含标题、描述、链接、组名的数组。我正在将 php 与 mysql 一起使用,但我想如果我实际上可以获得正确的查询或我需要的查询,我可以弄清楚我需要做什么。

如果需要更多信息,请告诉我,以便我可以使事情变得更清楚或其他。

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

最佳答案

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

关于mysql - 如何组合这些选择/连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9471189/

相关文章:

mysql - 查询不存在的记录,返回 null,HTTP 200

python - sqlalchemy - 在 outerjoins 的 ON 子句中添加任意条件

php - 将字符串转换为日期并在 where mysql 中使用别名

python - 向 auth_user 表添加只能具有选择性值的字段

mysql - SQL 语法错误 #1064 游标 (mysql)?

c++ - QTableView 上的 SQL 参数计数不匹配

MySQL MAX 在连接查询中的应用

python - 数据框的 Pandas 合并

php - Mysql 有条件选择一个值或其倒数

mysql - 如何组合来自差异表的 2 个查询