我正在练习使用mysql工作台的示例数据库“sakila”。当我尝试的时候
select address.address,staff.address_id,store.address_id,address.address from store
join address on store.address_id=address.address_id
join staff on staff.store_id=store.store_id ;
我在两个地址字段中得到相同的地址,而不是不同的地址id。为什么我在两个地址字段中得到相同的地址?
2条答案
按热度按时间tjrkku2a1#
你需要加入
address
两次使用不同别名的表nom7f22z2#
因为您用相同的地址联接staff和store表(实际上您将store表的address表和staff表与store联接,所以此结果集中的address是针对store而不是针对staff的)表,并且联接条件仅为store而不是针对staff的pick addresses和与相关store联接的staff表,所以为什么在结果集中得到相同的地址两列。