さて、ここでは一対多の関係があります。つまり、table1 の 1 行を table2 の 0 ~ n 行に関連付けることができます。
table1 の主キーでグループ化すると、結果をテーブル 1 の各行に対して 1 つの結果行に制限GROUP_CONCAT(table2_col)
します。これには、table2_column の一致するすべての行を区切り文字 (デフォルトではカンマ) で連結します。
次のクエリで遊んでください。
SELECT
t1.*,
GROUP_CONCAT(t2.content_id) AS content_ids,
GROUP_CONCAT(t2.title) AS content_titles
FROM
news_categories t1
LEFT JOIN news_content t2 ON t2.cat_ids = t1.cat_id
GROUP BY t1.cat_id
または
SELECT
t1.*,
t2.*
FROM
news_categories t1
LEFT JOIN news_content t2 ON t2.cat_ids = t1.cat_id
.* を使用する代わりに、必要な列を書き出すことをお勧めします。
編集
PHP で連結された値を分離するには、explode を見てください。
いつものようにデータをフェッチします。
$result = mysqli_query( $query );
while ( $row = mysqli_fetch_assoc( $result ) ) {
print_r( $row );
}
この例を見てください