根据几个表中的另一个选择进行选择

时间:2018-09-10 12:45:07

标签: mysql sql join select

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

  1. 从基于lamp_id的台灯中选择family_id
  2. 根据表1中的family_id从table Lamps_family中选择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

1 个答案:

答案 0 :(得分:0)

假设您的灯泡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元数据的完整数据集,并使用另一个联接(称为自联接)来过滤特定灯的元数据。