user455318
user455318

Reputation: 3346

Query return a bad output

table offer

id_offer  offer   state    

600         A       0
629         B       0

tags

id_tags     tags        

561         PHP
562         JAVA
589         MySQL
917         python

offer_has_tags

offer_id_offer      tags_id_tags 
 600                    561     
 600                    562
 600                    917
 629                    562
 629                    589
 629                    917

The output that i need:

600     PHP
600     JAVA
600     python
629     JAVA
629     MySQL
629     python

What i am trying (without success):

    SELECT A.id_offer, A.tags
    FROM 
      ( SELECT *
        FROM offer
        WHERE id_offer IN (600, 629)
        AND state = 0  
        ORDER BY date_post DESC
        LIMIT ?, ?
      ) A, tags A
    INNER JOIN offer_has_tags B
        ON A.id_tags = B.tags_id_tags
    INNER JOIN offer C
        ON C.id_offer = B.offer_id_offer
    GROUP BY id_tags

Any idea? thanks

Upvotes: 1

Views: 53

Answers (2)

hmmftg
hmmftg

Reputation: 1754

Using Old SQL style(but more understandable I think):

 SELECT id_offer, tags.tags
   FROM tags,offer_has_tags,offer
  WHERE offer_id_offer = offer.id_offer
    AND tags_id_tags = id_tags
    AND id_offer IN (600, 629)
    AND state = 0
  GROUP BY id_offer, tags.tags
  ORDER BY date_post DESC

with LIMIT:

 SELECT A.id_offer, tags.tags
   FROM tags,( SELECT *
                 FROM offer
                WHERE id_offer IN (600, 629)
                  AND state = 0  
                ORDER BY date_post DESC
                LIMIT ?, ?
              ) A,offer_has_tags
  WHERE offer_id_offer = A.id_offer
    AND tags_id_tags = id_tags
  GROUP BY A.id_offer, tags.tags

Upvotes: 1

codingbiz
codingbiz

Reputation: 26396

try this

SELECT A.id_offer, t.tags
from 
  (Select * from offer o
    Where o.id_offer IN (600, 629)
    AND o.State=0
    ORDER BY ? DESC
    Limit ?,?) A
INNER JOIN offer_has_tags B
    ON A.id_offer = B.offer_id_offer
INNER JOIN tags t
    ON b.tags_id_tags = t.id_tags

Upvotes: 2

Related Questions