mysql单个查询单个数据库表

时间:2010-12-24 18:58:08

标签: mysql

我需要在一个查询中指定以下内容:对于为指定的Activity注册的每个子项,它应包含Activity_nameChild_ first_name以及last_nameActivity Table中有(足球/艺术/ IT)活动(每项活动都有primary_key)。什么是列出为艺术活动注册的儿童的查询?子名称应显示在一列中。感谢。

1 个答案:

答案 0 :(得分:2)

如果不提供表格结构,我就无法提供准确的查询。

但是,如果我要设计一组存储子项列表,活动列表以及两者之间的相关性的表,它将包含三个名为“children”,“activities”和“ linktable“在这个例子中。

children
    id
    first_name
    last_name

activities
    id
    name

linktable
    child_id
    activity_id

children存储每个孩子的姓名和信息,以及唯一的ID。 activities存储有关活动的名称和相关信息,以及唯一ID。最后,linktable可能类似于系统中的“计划”或“注册”,并且应该将子项链接到活动并允许所谓的many-to-many关系。换句话说,一个孩子可以参加许多活动,许多孩子可以参与任何活动。

以下查询是如何查看哪些子项已注册Art:

的示例
SELECT
    a.name, CONCAT(c.first_name, ' ', c.last_name) AS child_name
FROM
    children c, activities a, linktable
WHERE
    linktable.child_id = c.id
AND
    linktable.activity_id = a.id
AND
    a.name = 'Art';