JDBC怎么多表查询,pet表前面的id和name都能查,account表的price就不能查了,我想达到数据库联表的效果,请问怎么做

JDBC怎么多表查询,pet表前面的id和name都能查,account表的就不能查了,我想达到数据库联表的效果,请问怎么做
【数据库代码】

img

【查询方法】

img

【account表的price报错】

img

没有关联查询(这里尽量取别名)
select p.id as pid ,p.name as pname,a.price as aprice from pet p left join account a on p.id = (account表关联pet表的字段)

id和name都能查,因为pet表里面本来就有,想多查一个account表的价格就报错了

select p.id,p.name,a.price from pet as p left join account as a on p.id = a.id;
大致是这样吧,看不到你两个表的详细结构,不确定两个表的关系

兄弟,你的查询方法,少写个price字段啊,所以控制台报没有找到price

SELECT p.id,p.name,price from pet p,account a where pet_id=p.id
你上面没有查price,自然获取不到price了

两个表的联合查询如下:

select p.id,p.name,a.price from pet as p join account as a on p.id = a.pet_id;

使用a.price就可以查出来了

如有帮助,请采纳,十分感谢!

你的select语句中需要写上price查询的结果中才会包含

pet和account这两个表的关联关系是哪个字段呢

sql改为如下写法

SELECT p.id,p.name,a.price from pet p,account a where a.pet_id=p.id

试试这个:
select p.id,p.name,a.price from pet p,account a where a.pet_id=p.id

account表的price
没有这一列

select p.id,p.name,a.price from pet p,account a where a.pet_id = p.id 字段前面加上表的别名

select p.id,p.name,a.price from pet p join account a on p.id = a.pet_id;
一个表以上,最好加别名~