gpt4 book ai didi

php - 连接两列并使用单个 sql 查询从其外键获取字段值

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

我有两个表:

  1. tbl_users(ID、名字、姓氏、电子邮件、密码)
  2. tbl_claims (id,claimed_by,claimed_to)(claimed_by和claimed_to都是tbl_users表的user_id,即外键)

现在我怎样才能通过单个sql查询获取claimed_by和claimed_to用户id的first_name和last_name?

我正在尝试下面的查询,但在 where 子句中使用它时出现未知列错误。

SELECT c.*,
(select first_name from tbl_users where id=c.claimed_by) as claimed_by_fname,
(select last_name from tbl_users where id=c.claimed_by) as claimed_by_lname,
(select first_name from tbl_users where id=c.claimed_to) as claimed_to_fname,
(select last_name from tbl_users where id=c.claimed_to) as claimed_to_lname
from tbl_claims as c INNER JOIN tbl_users as u ON u.id = c.claimed_by INNER JOIN
tbl_users as u1 ON u1.id = c.claimed_to where claimed_by_fname like '%kotak%'

我知道上面的sql查询根本没有效率,我刚刚尝试过。它为我提供了没有 where 子句的记录,但不适用于 where 子句。

最佳答案

您不需要子选择只需加入

select c.*
, u1.first_name claimed_by_fname
, u1.last_name claimed_by_lname
, u2.first_name claimed_to_fname
, u2.last_nameclaimed_to_lname
from tbl_claims as c
INNER JOIN tbl_users as u1 ON u1.id = c.claimed_by
INNER JOIN tbl_users as u2 ON u2.id = c.claimed_to
where u1.claimed_by_fname like '%kotak%'

关于php - 连接两列并使用单个 sql 查询从其外键获取字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48987019/

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