Megpróbálok létrehozni egy sok a sokhoz SQL lekérdezést, majd az eredményeket más táblákkal egyesíteni.
5 táblám van: cikkek, hashtagek, cikkek_hashtagok (amelyek a hashtag.id és a cikkek.id leképezik), felhasználók, szerzők.
Ha az összes cikket le akarom kérdezni, és a szerzői és felhasználói információkat össze akarom kapni, akkor ezt a lekérdezést használom, és működik:
SELECT articles.*, authors.name as authorName, users.name as userName
FROM articles
LEFT JOIN authors ON articles.authorId = authors.id
LEFT JOIN users ON articles.userId = users.id
Ellenkező esetben, ha megpróbálok lekérdezni minden cikket egy bizonyos hashtaggel, akkor ezt használom (amint kiderül: itt):
SELECT articles.*
FROM articles, hashtags, articles_hashtags
WHERE hashtags.id = articles_hashtags.hashtagId
AND (hashtags.name IN ('prova'))
AND articles.id = articles_hashtags.articleId
GROUP BY articles.id
De ezen a másodikon hogyan tudom összekapcsolni a többi tábla információit (felhasználók és szerzők)?
Kösz!
SELECT art.* FROM articles art INNER JOIN articles_hashtags arc_hs ON art.id = arc_hs.articleId INNER JOIN hashtags hs ON hs.id = arc_hs.hashtagId INNER JOIN authors aut ON art.authorId = aut.id INNER JOIN users u ON art.userId = u.id WHERE hs.name IN ('prova') GROUP BY art.id
. Ha ezt helyesbíti válaszában, megoldottnak jelölöm a kérdést! 03.04.2015WHERE
záradékban vannak, ami nem ajánlott, de az összes tábla össze van kapcsolva. 03.04.2015