1 つのテーブルから sql Select を作成し、次に 2 番目のテーブルから sql select を作成して、結果を同じ配列内に配置しようとしています。
私が使用している元の SQL クエリは次のとおりです。
$sql = "SELECT users.*, cursos.titulo, subscriptions.status
FROM users
LEFT OUTER JOIN subscriptions
ON users.userID = subscriptions.user_id
LEFT OUTER JOIN cursos
ON cursos.id = subscriptions.curso_id";
これは、テーブル ユーザーからすべてのデータを取得し、テーブル サブスクリプションの値に基づいてテーブル カーソルからデータを取得します。このように、subcriptions テーブル内でユーザー ID が見つかった回数に応じて、クエリはテーブル users から同じデータを取得するように機能します。サブスクリプションテーブルに含まれているとしましょう
curso_id | user_id
14 | 48
12 | 48
この場合、2 つの配列が生成され、それぞれにユーザーからのすべてのデータと、cursos からのデータが含まれます。
したがって、私の質問は、最初に SELECT * FROM Users を実行する SQL クエリを作成する方法です。これがテーブルの最初の行に対して完了した後、次のような 2 番目のクエリを実行したいと思います。
SELECT users.id, cursos.titulo, subscriptions.status
FROM users
LEFT OUTER JOIN subscriptions
ON users.userID = subscriptions.user_id
LEFT OUTER JOIN cursos
ON cursos.id = subscriptions.curso_id
そして、すべての情報をタイトル用の 1 つの変数とステータス用の別の変数に入れます。この場合、この情報はさまざまな結果になる可能性があるため、コンマまたはスペースで区切る必要がありますが、配列の同じセル内にロードすることが重要です。
この操作は、ユーザーごとに 1 つの行を含む配列を生成します。この配列には、すべてのユーザー データ列と、タイトル用のさらに 2 つの列と、それらの各行が何回に応じて、cursos テーブルから取得されたさまざまな結果を含む必要があるかのステータスの列が含まれます。この場合のユーザー ID は、「48」がサブスクリプション テーブル内に表示されます。目標は、cursos テーブル内に結果がいくつあっても、このタイトルとステータスの情報を単一のセルに配置することです。どんな助けでも大歓迎です。
したがって、最終結果の配列は次のようになります。