【问题标题】:Select based on another select from few tables基于从几个表中选择的另一个选择
【发布时间】:2019-02-14 21:48:16
【问题描述】:

我正在尝试执行以下查询:

  1. 根据lamp_id从台灯中选择family_id
  2. 根据 1 中的 family_id 从台灯系列中选择 family_parents。
  3. 根据我从 2 获得的 family_id 从台灯中选择灯。

TL;DR

我想使用单个查询根据家庭的 ID 获取所有灯,但是有多个家庭分配给一个父级。例如,在表“lamps_family”中,有两个家庭的“父母”ID 为 11,即“Asseto”。现在基于“family_id”,我想通过询问“lamps”表中的“lamp_family”字段来下载“lamps”表中的所有灯。有可能吗?

我尝试合并表格,使用分组,不幸的是没有成功。 table lamps

table lamps_family

【问题讨论】:

  • 这里的大多数人想要格式化文本,而不是图像(或图像链接)。
  • 查看内连接和/或左连接。如果您发布没有图片的表格,我们可以提供更好的帮助
  • 请通过发布示例数据和预期结果来帮助您,最好是作为 SQL Fiddle。

标签: mysql sql join select


【解决方案1】:

假设您的灯泡 ID 是 21 (Asseto)。

SELECT lamps.* FROM lamps
  JOIN lamps_family ON lamps.lamp_family = lamps_family.family_id
  JOIN (
    SELECT lamps_family.family_id FROM lamps JOIN lamps_family ON
      lamps.lamp_family = lamps_family.family_id
      WHERE lamps.id = 21
    ) lamp ON lamp.family_id = lamps_family.family_id

应该可以吗?

首先,您创建完整的数据集,将所有灯数据连接到lamps_family 元数据,并使用另一个连接(有点像自连接)过滤到特定灯的元数据。

【讨论】:

    猜你喜欢
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    • 2011-06-11
    相关资源
    最近更新 更多