0
結合的結果和獨立的我有這個疑問:用逗號
SELECT
tud.detail_company_name AS company_name,
tud.detail_country AS company_country,
trv.review_title AS review_title
FROM users_detail tud
INNER JOIN users_auth tua
ON tud.user_id = tua.user_id
LEFT JOIN reviews trv
ON tud.user_id = trv.review_company_id
WHERE
tua.auth_user_type = "company" OR tua.auth_user_type = "guestcompany"
查詢工作正常,並返回這樣的結果:
Array
(
[0] => Array
(
[company_name] => The Coffee Brewery
[company_country] => US
[review_title] =>
)
[1] => Array
(
[company_name] => Crea Nail Art Studio
[company_country] => SG
[review_title] =>
)
[2] => Array
(
[company_name] => Hello Mall
[company_country] => JP
[review_title] => Fake goods!
)
[3] => Array
(
[company_name] => Hello Mall
[company_country] => JP
[review_title] => Never buy in there!
)
)
正如你注意到數組鍵2 & 3具有相同company_name但不同review_title。是否有可能必須加入一個結果並用逗號分隔?例如說,這樣的結果:
Array
(
[0] => Array
(
[company_name] => The Coffee Brewery
[company_country] => US
[review_title] =>
)
[1] => Array
(
[company_name] => Crea Nail Art Studio
[company_country] => SG
[review_title] =>
)
[2] => Array
(
[company_name] => Hello Mall
[company_country] => JP
[review_title] => Fake goods!, Never buy in there!
)
)
編輯
如果反應是這樣的:
Array
(
[0] => Array
(
[company_name] => The Coffee Brewery
[company_country] => US
[review_title] =>
[review_approved] =>
)
[1] => Array
(
[company_name] => Crea Nail Art Studio
[company_country] => SG
[review_title] =>
[review_approved] =>
)
[2] => Array
(
[company_name] => Hello Mall
[company_country] => JP
[review_title] => Fake goods!
[review_approved] => 1
)
[3] => Array
(
[company_name] => Hello Mall
[company_country] => JP
[review_title] => Never buy in there!
[review_approved] => 0
)
)
我能不包括0的review_titleGROUP_CONCAT
review_approved?所以它會輸出這樣的?
Array
(
[0] => Array
(
[company_name] => The Coffee Brewery
[company_country] => US
[review_title] =>
)
[1] => Array
(
[company_name] => Crea Nail Art Studio
[company_country] => SG
[review_title] =>
)
[2] => Array
(
[company_name] => Hello Mall
[company_country] => JP
[review_title] => Fake goods!
)
)
太棒了!一個問題:爲什麼'tud.detail_company_name'&'tud.detail_country'在'GROUP BY'子句中? –
@LeandroGarcia - 這就是'GROUP BY'子句的工作原理。任何未包含在「GROUP BY」中的列都應該是一個聚合函數。您不能在select子句中包含未包含在聚合函數中或GROUP BY子句中的列。你可以在MySQL中做到這一點。但是這不被推薦。 –
您的回答是正確的,但請參閱我的編輯。非常感謝@Mahmoud Gamal。 –