mysql—一个sql查询,用于获取两个表的数据,即使相关id不可用

c90pui9n  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(397)

我得把账本和账本分开
会计主管

id | name   | phone
1  | Saijal | 989898    
2  | Shakya | 878787

分类帐

id | accid | dr    | cr
1  |  1    | 10000 | 5000

我试过了

select * from ledger full join accounthead on accid = accounthead.id 
where accid=1

它给出了我想要的所有结果,但id accid=2它显示为空,但我想要accounthead的所有信息,即使它在分类帐中没有数据

bxpogfeg

bxpogfeg1#

LEFT JOIN 是将从中返回所有行的所需内容 ledger 表中的匹配行 accounthead ```
SELECT ledger.id AS ledger_id, ledger.accid, ledger.dr, ledger.cr,
accounthead.name, accounthead.phone
FROM accounthead LEFT JOIN ledger
ON accounthead.id = ledger.accid

另外,不要使用 `SELECT *` ,而只使用所需的列。
dluptydi

dluptydi2#

一般来说,您可以使用 LEFT JOIN . 第一个表包含结果集中所需的所有行。第二个是“添加”信息。

select . . .  -- whatever columns you want
from accounthead ah left join
     ledger l
     on l.accid = ah.id ;

中的列 ledger 为了 ah.id 没有对手的 l.accidNULL .
你也有这种情况 where l.accid = 1 . 我猜这是不是真的需要,上面做什么你想要的。

相关问题