1

lwim_projects列 project_id (特に) で呼び出されるテーブル、lwim_designers列 designer_id (特に) で呼び出されるテーブル、およびlwim_images列 image_id (特に) で呼び出されるテーブルがあります。

と という 2 つの結合テーブルもlwim_join_designers_projectsありlwim_join_projects_imagesます。

lwim_join_designers_projectsは次の列があります。

  • dp_id、
  • designer_id と
  • project_id

lwim_join_projects_imagesは次の列があります。

  • pi_id
  • project_id と
  • image_id。

結合テーブルを前述のテーブルと結合したいのですが、残念ながら両方を結合することはできず、そのうちの 1 つしか結合できないようです。

以下のコードは私には正しいように見えます (そして、これの多くの組み合わせを試しました)。

$result = mysql_query("SELECT * FROM lwim_projects, lwim_designers, lwim_images
INNER JOIN lwim_join_designers_projects ON lwim_join_designers_projects.designer_id = lwim_designers.designer_id
INNER JOIN lwim_join_projects_images ON lwim_join_projects_images.image_id = lwim_images.image_id
WHERE lwim_projects.project_id = lwim_join_designers_projects.project_id
AND lwim_projects.project_id = lwim_join_projects_images.project_id
ORDER BY date_repinned DESC
LIMIT 20");

2番目のwhereステートメントなしでも試しました。

私が言ったように、lwim_images テーブルから選択して images テーブルに参加しなくても動作しますが、その逆も同様ですが、両方で動作することを望んでいないようです。

私が間違っているかもしれない場所に誰かが光を当てることができますか?

敬具、ダニエル

4

2 に答える 2

1

これを試して:

$result = mysql_query("SELECT * FROM lwim_projects, lwim_designers, lwim_images
INNER JOIN lwim_join_designers_projects ON lwim_join_designers_projects.designer_id = lwim_designers.designer_id AND lwim_join_designers_projects.project_id = lwim_projects.project_id
INNER JOIN lwim_join_projects_images ON lwim_join_projects_images.image_id = lwim_images.image_id AND lwim_join_projects_images.project_id = lwim_projects.project_id
ORDER BY date_repinned DESC
LIMIT 20");

INNER JOIN ONステートメント内にwhere句を配置しました。これが役立つかもしれません...

于 2013-07-09T12:55:21.833 に答える