0

4つの異なるテーブルを使用してクエリを作成しようとしています。

  • Users_Licences
  • ライセンス
  • 製品
  • リクエスト

Usersに複数のLicencesが格納されていUsers_Licencesます。Products複数Requestsあり、Requestテーブル内のターゲットライセンスがあります。Productsテーブル内のどこにありますかsource_licence

Products指定されたユーザーがテーブルに持っているターゲットライセンスとソースライセンス(を介して)を持つすべてのリクエストを一覧表示したいと思いUsers_Licencesます。

複雑ですが、これは私がこの時点でいるところです(機能していません):

SELECT 
    Request.id AS offer_id, Request.product_id, 
    Request.licence_id AS target_licence_id, 
    Request.trans_price, Products.source_licence_id    
FROM 
    Request    
JOIN 
    Products ON Request.product_id = Products.id    
JOIN 
    Licences ON Products.source_licence_id = Licences.id    
JOIN 
    Licences ON Request.licence_id = Licences.id    
JOIN 
    Users_Licences ON Licences.id = Users_Licences.licence_id    
WHERE 
    Users_Licences.user_id = '$user_id'    
GROUP BY 
    Request.id    
ORDER BY 
    Request.trans_price DESC

手伝ってくれませんか。行を削除すると

JOIN Licences ON Products.source_licence_id = Licences.id

それは動作しますが、結果の一部があります...ありがとう!

4

1 に答える 1

1

テーブルを複数回使用する場合は、別のエイリアス名を使用する必要があります

SELECT Request.id AS offer_id, Request.product_id, Request.licence_id AS target_licence_id, Request.trans_price 
, Products.source_licence_id     
FROM Request     
JOIN Products ON Request.product_id = Products.id     
JOIN Licences as l1 ON Products.source_licence_id = l1.id     
JOIN Licences as l2 ON Request.licence_id = l2.id     
JOIN Users_Licences ON l2.id = Users_Licences.licence_id     
WHERE Users_Licences.user_id='$user_id'     
GROUP BY Request.id     
ORDER BY Request.trans_price DESC 
于 2012-07-20T13:43:15.900 に答える