gpt4 book ai didi

MySQL JOIN 两个地方的两个表

转载 作者:行者123 更新时间:2023-11-29 01:52:11 25 4
gpt4 key购买 nike

这是我的查询:

SELECT a.id, a.hostname, a.asset_tag, d.model, b.location,
c.type, a.earmarked, a.earmarked_office, a.earmarked_user,
a.earmarked_date, a.earmarked_by
FROM laptops a
JOIN locations b ON a.location = b.id
JOIN types c ON a.type = c.id
JOIN models d ON a.model = d.id
WHERE b.stock = 1

现在,a.earmarked_office 字段实际上是对 locations 表中 ID 的引用,我们已经用它来填充 b。位置。我如何在同一语句中检索 earmarked_office 的实际位置名称?

最佳答案

加入表两次:

SELECT lt.id, lt.hostname, lt.asset_tag, d.model, l.location,
c.type, lt.earmarked, lt.earmarked_office, lt.earmarked_user,
lt.earmarked_date, lt.earmarked_by,
lteo.??
FROM laptops lt JOIN
locations l
ON lt.location = l.id JOIN
types t
ON lt.type = t.id JOIN
models m
ON lt.model = m.id JOIN
locations leo
ON lt.earmarked_office = leo.id
WHERE l.stock = 1;

注意事项:

  • 使用表别名很好。但是,使用表别名可以更轻松地遵循查询逻辑。
  • 我不知道你想从第二个表中得到什么列。
  • 使用 as 重命名列,这样它们就不会与已经来自 l 的列冲突。
  • 如果存在不匹配的值,您可能需要一个LEFT JOIN

关于MySQL JOIN 两个地方的两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38657749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com