我正在尝试使用连接从2个表中获取数据。但我不知道该怎么做。我已经阅读了关于连接的内容,但由于我是新手,因此没有任何意义。
我有两张桌子。
Playgrounds Inspection
id u_id id playground_id
1 2 1 1
2 2 2 2
在游乐场表中id
是游乐场ID并且是唯一的,u_id
是游乐场的用户。
在检查表中,id
是唯一的,playground_id
用作 playgrounds 表的ID的外键。
我的问题是我必须将id
和u_id
传递给 playgrounds 表中的查询,然后它应该从playground table中选择id。然后它应该根据该ID从检查表中选择所有内容。
希望我已经正确解释了它。
非常感谢任何帮助。
提前致谢
答案 0 :(得分:1)
JOIN
次操作,无论INNER JOIN
,LEFT JOIN
还是RIGHT JOIN
,都有这种整体语法。
table_expression JOIN table_expression ON boolean_expression
当布尔表达式为真时,JOIN
将两个表的匹配行连接成结果中的单个行。
在您的情况下,您希望ON子句的布尔表达式说明
Playgrounds.id = Inspection.playground_id
因为您知道Inspection
中的一行与Playgrounds
中的行有关。因此,声明如
SELECT Inspection.id AS Inspection_ID,
Playgrounds.id AS Playground_ID,
Playgrounds.u_id AS User_ID
FROM Playgrounds
JOIN Inspection ON Playgrounds.id = Inspection.playground_id
WHERE Playgrounds.u_id = something
AND Playgrounds.id = something_else
看看它怎么样?您的SELECT
通过在ON
子句中选择的条件中加入两个现有表的行来创建一个新表,有时称为结果集。
您可以将任何想要的内容放入ON
子句中。你可以把
Playgrounds.id = Inspection.playground_id OR Inspection.id < 20
或
Playgrounds.id = Inspection.playground_id OR Inspection.scope = 'citywide'
例如(如果scope
表中有Inspection
列。)
但是,在掌握基本的JOIN
操作之前,请不要去那里。