0

誰かがこの SQL で私を助けてくれませんか?

SELECT 
   statut.*, 
   clien_1.Id, clien_1.mail, clien_1.nom, clien_1.prenom, 
   image_profil_1.image, 
   statut_comments.*, 
   clien_2.Id, clien_2.mail, clien_2.nom, clien_2.prenom, 
   image_profil_2.image  
FROM  
    statut
INNER JOIN 
    clien AS clien_1 ON statut.client_from = clien_1.Id
INNER JOIN  
    clien AS clien_2 ON statut_comments.id_client = clien_2.Id
INNER JOIN  
    statut_comments ON statut_comments.comment_id = statut.id
INNER JOIN 
    image_profil AS image_profil_1 ON image_profil_1.mail = clien_1.Id 
INNER JOIN 
    image_profil AS  image_profil_2 ON image_profil_2.mail = clients_2.Id  
4

2 に答える 2

2

問題は、内部結合の順序です。結合する前に blog_statut_comments を使用しています。

結合の順序を変更してみてください。

于 2012-08-25T20:16:52.937 に答える
0

フィオナがすでに指摘したようstatut_commentsに、結合されたテーブルのリストに追加される前に言及しています。「これを理解した」かどうかはわかりません-視覚的な説明は次のとおりです。

ここに画像の説明を入力

基本的に、次の順序を変更する必要がありますJOINs

SELECT 
   (your list of columns)
FROM  
    statut
INNER JOIN     -- include the "status_comments" *BEFORE* refering to it!
    statut_comments ON statut_comments.comment_id = statut.id
INNER JOIN 
    clien AS clien_1 ON statut.client_from = clien_1.Id
INNER JOIN  
    clien AS clien_2 ON statut_comments.id_client = clien_2.Id
INNER JOIN 
    image_profil AS image_profil_1 ON image_profil_1.mail = clien_1.Id 
INNER JOIN 
    image_profil AS  image_profil_2 ON image_profil_2.mail = clients_2.Id  
于 2012-08-25T21:16:47.900 に答える