この問題の解決策を検索する方法さえよくわからないため、具体的なものが見つからなかったので、ここに行きます...
私は4つのテーブルを持っています。それらを単純化しましょう:
players
=======
id name surname
1 John Arbuckle
2 Walter White
3 Don Draper
4 Louis CK
5 Tyrion Lannister
6 Abed Nadir
sports
======
id sport
1 football
2 handball
positions
=========
id name sport_id
1 goalie 1
2 defense 1
3 attack 1
4 goalie 2
5 pivot 2
6 wing 2
7 center 2
player_position
===============
player_id position_id
1 1
1 2
1 5
2 7
2 5
3 2
4 2
5 1
5 3
6 7
6 5
したがって、プレーヤーは複数のスポーツを複数のポジションでプレイできます。まず、特定のスポーツの選手のリストを表示する必要があります。これには、彼らがプレーするポジションの列が含まれます。
私が始めたのは、これらのテーブルを結合し、プレーヤー ID ごとに複数の行を持つ JOIN ステートメントです。それは近いですが、あまり正しくありません。そして、私が取得する必要があるのは、次のようなテーブルです。
フットボール
ID name surname position
1 John Arbuckle PHP array(goalie,defense)
ハンドボール
ID name surname position
1 John Arbuckle PHP array(pivot)
編集:私が探していたのは GROUP_CONCAT() でした。みんなありがとう!