我有2個表,SQL查詢2 VS加入
用戶
- 用戶名PK
- 暱稱
權限
- 用戶名FK給用戶
- permission_text
給定一個username
,是否有可能返回1行的所有權限和用戶的詳細信息?
我可以想到兩種方法,方法1是SELECT * FROM permissions WHERE username = <username>
,並做了SELECT * FROM users WHERE username = <username>
的另一個查詢。
方法二是加入兩個表,並把第一行的用戶的細節和一個循環從該行的其餘部分獲得許可。
我不覺得這兩種方法在關係型數據庫的術語很乾淨。我應該做什麼樣的查詢以便獲取用戶詳細信息和權限數組?
對於postgresql,請使用string_agg()函數。 參見:http://stackoverflow.com/questions/15847173/concatenate-multiple-result-rows-of-one-column-into-one-group-by-another-column – bbb8989