在左连接查询中使用表中的两个结果作为两个别名

lb3vh1jj  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(424)

我不知道该怎么说,但我会试一试的。
我有两个表:users和fields\u values
users has a id fields\u values has item\u id(即用户id)、field\u id和value
如果可能,我需要用户列表,该用户的字段id为x的值为“employee\u id”,该用户的字段id为y的值为“location”。
像这样

USERS           FIELDS
------------   ----------------------------
id   | Name     field_id | item_id  | value
------------   ----------------------------
448  | Karen     1       |  448     | 1234
489  | Steve     2       |  448     | bathurst
                 1       |  489     | 2234
                 2       |  489     | orange

RESULTS
USER
  0 ==>
  id: 448
  employee_id: 1234
  location: bathurst

  1 ==>
  id: 489
  employee_id: 2234
  location: orange
ha5z0ras

ha5z0ras1#

此查询将执行您想要的操作。你需要加入 fields_values 两桌,一桌 employee_id 一次是为了得到 location . 我用过 LEFT JOIN 在用户可能没有 employee_id 或者 location ,如果不是这样的话,你可以用直的 JOIN . 替换的值 x 以及 y 在这个查询中。

SELECT u.id, fv1.value AS employee_id, fv2.value AS location
FROM users u
LEFT JOIN fields_values fv1 ON fv1.item_id = u.id AND fv1.field_id = x
LEFT JOIN fields_values fv2 ON fv2.item_id = u.id AND fv2.field_id = y

相关问题