我有3个这样的表(在这里简化了ofc):
用户与信息有一对一的关系,尽管信息并不总是有相关的条目。
用户与联系人有一对多的关系,尽管联系人并不总是有相关的条目。
我知道我可以用一个左联接来获取适当的‘用户’+‘信息’,有什么方法可以一次得到我想要的所有数据吗?
例如,返回的一个记录可能是:
user_id: 5
user_name: tom
info_id: 1
rate: 25.00
contact_id: 7
contact_data: 555-1212
contact_id: 8
contact_data: 555-1315
contact_id: 9
contact_data: 555-5511单次查询就可以做到这一点吗?还是我必须使用倍数?
发布于 2010-04-11 15:51:31
每一行结果都必须有相同的列,因此不能聚合多行联系人,而其他列也不具有。
希望此查询能够实现您所需的功能:
SELECT
u.user_id as user_id,
u.user_name as user_name,
i.info_id as info_id,
i.rate as rate,
c.contact_id as contact_id,
c.contact_data as contact_data
FROM users as u
LEFT JOIN info as i ON i.user_id = u.user_id
LEFT JOIN contacts as c ON c.user_id = u.user_idhttps://stackoverflow.com/questions/2617559
复制相似问题