我有以下表格:SQL左連接 - 同樣的結果多次
用戶
id
|命名
信息
ID | info | user_id
(USER_ID從表信息是外鍵=>從表連接到ID 用戶)
這可能是該用戶將在信息表中的許多項(同USER_ID在許多行)。
現在我想獲取數據和這樣的顯示出來:
username:
... info ....
例子:
admin:
aaa
bbb
ccc
someuser:
ddd
eee
fff
所以我使用LEFT JOIN這樣的:
SELECT users.name, info.info
FROM users
LEFT JOIN info
ON users.id = info.user_id
但我得到如下:
admin:
aaa
admin:
bbb
admin:
ccc
我怎樣才能顯示用戶名只有一次?我試過SELECT
後使用DISTINCT
關鍵字,但它沒有幫助。同時我在php代碼本身內部解決了這個問題,但是有什麼方法可以解決這個問題嗎?
您試圖查詢和輸出嵌套結構(用戶信息的父母)直接從MySQL。關係數據庫並沒有真的被削減。在前端代碼中執行格式化可以。 – Jacob
DISTINCT顯示管理員3次的原因是因爲管理員有3個信息,問題是您需要哪些信息?或者你根本不需要他們中的任何一個? – ace
@cularis,你的評論是完全錯誤的。在de DB中這樣做要比在php中做更快更簡單。 – Johan