Ich möchte GROUP LEFT JOIN Zeilen in meiner Anfrage, mit einem anderen, wie folgt aus:LEFT JOIN GROUP Ergebnis mit gleichen PK
[ID] => 1,
[user_email] => '[email protected]',
[user_registered] => '2017-10-13 14:39:20',
[preferences_id] => 1,
[uid] => 1,
[user_social_links] => Array
(
[1 *social_id index*] => Array
(
[name] => FACEBOOK
[value] => http://facebook.com/url
[display] => 1
)
[2 *social_id index*] => Array
(
[name] => TWITTER
[value] => http://twitter.com/url
[display] => 1
)
)
Ich habe diese Tabellen:
- Benutzer
- user_account
- user_social_links
users : -------------------------------------------------- | ID | user_email | user_registered | -------------------------------------------------- | 1 | [email protected] |2017-10-13 14:39:20 | -------------------------------------------------- | 3 | [email protected] |2017-10-13 15:20:05 | -------------------------------------------------- user_account: -------------------------------------------------- | preferences_id | uid | user_nicename | -------------------------------------------------- | 1 | 1 | example nice name1 | -------------------------------------------------- | 2 | 3 | example nice name2 | -------------------------------------------------- user_social_links : ------------------------------------------------------------ | social_id | uid | name | value | display | ------------------------------------------------------------ | 1 | 1 | FACEBOOK | fb.me/example | 1 | ------------------------------------------------------------ | 2 | 1 | TWITTER | twitter.com/example| 1 | ------------------------------------------------------------
Meine Frage ist:
SELECT
user_account.preferences_id,user_account.uid,user_account.user_nicename,
users.ID,users.user_email,users.user_registered,user_social_links.social_id,user_social_links.value,user_social_links.name,user_social_links.display,
FROM user_account
LEFT JOIN user_social_links
ON user_social_links.uid = user_account.uid
LEFT JOIN users
ON users.ID = user_account.uid
WHERE user_account.uid = :userid
Ausgang:
Array
(
[0] => Array
(
[preferences_id] => 1
[uid] => 1
[user_nicename] => example nice name1
[ID] => 1
[user_email] => [email protected]
[user_registered] => 2017-10-13 14:39:20
[social_id] => 1
[value] => fb.me/example
[name] => FACEBOOK
[display] => 1
)
[1] => Array
(
[preferences_id] => 1
[uid] => 1
[user_nicename] => example nice name1
[ID] => 1
[user_email] => [email protected]
[user_registered] => 2017-10-13 14:39:20
[social_id] => 2
[value] => twitter.com/example
[name] => TWITTER
[display] => 1
)
)
Hinweis: Ich kann GROUP BY nicht user_account.uid (# 1055 only_full_group_by Fehler mysql) verwenden .¿How ich das erste Ergebnis bekommen Beispiel? Ich möchte in einer Abfrage, foreach (PHP) nicht verwenden. Bitte kann mir jemand helfen? freundliche Grüße.
ich darüber readed erklärt, aber ich werde einen Weg ohne Set sql_mode lieber zu tun, wissen Sie, ein anderer Weg? Danke für deine Antwort. – elaineee