簡體   English   中英

為什么這個 MySQL 查詢返回兩行?

[英]Why does this MySQL Query returns two rows?

我的查詢返回兩行,其中第二行與第一行完全相同。 我想知道為什么會這樣? 我知道如果我把 LIMIT 1 放在最后,它只會返回一行,所以我會要求不要建議這個解決方案。 這是我的查詢

SELECT u.username,u.password,u.registerDate,u.lastVisitDate,u.lastVisitIp,
u.activationString,
u.active,u.block,u.contact_id,c.name,c.email,c.pPhone,c.sPhone,c.rPhone,c.area_id,
a.name as areaName, a.city_id, ct.name as cityName, ct.state_id, s.name as stateName, 
s.country_id, cn.name as countryName 
FROM users u 
LEFT JOIN contacts c 
ON (u.contact_id = c.id) 
LEFT JOIN areas a 
ON (c.area_id = a.id) 
LEFT JOIN cities ct 
ON (a.city_id = ct.id) 
LEFT JOIN states s 
ON (ct.state_id = s.id) 
LEFT JOIN countries cn 
ON (s.country_id = c.id) 
WHERE u.id = 1

上面的查詢是從 6 個表中獲取數據,其中包括

users s
contacts c
areas a
cities ct
states s
country cn

上面所有 6 個表都有名為id的主鍵,外鍵如下

users.conntact_id
contacts.area_id
areas.city_id
cities.state_id
states.country_id

為什么它返回兩行而不是一行?

您加入的其中一個表具有多個元素,因此所有其他表都會重復。 該表很可能是contacts表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM