symfony2 doctrine中的高级SQL查询

时间:2016-07-29 11:35:43

标签: mysql symfony doctrine-orm phpmyadmin doctrine-query

我正在使用Symfony2.8和MySQL开展项目。 我的数据库中有4个表,分别是用户,引号,文章,文章引用。

用户表

<html>
  <body>
    <table border="1">
      <tr>
        <th>user_id</th>
        <th>name</th>
        <th>age</th>
      </tr>
      <tr>
        <td>7</td>
        <td>Alex</td>
        <td>20</td>
      </tr>
      <tr>
        <td>8</td>
        <td>John</td>
        <td>30</td>
      </tr>
      
      </table>
    </body>
  </html>

引用表格

<html>
  <body>
    <table border="1">
      <tr>
      <th>quote_id</th>
      <th>user_id</th>
      <th>reference</th>
        </tr>
      <tr>
      <td>61</td>
      <td>7</td>
      <td>AE20</td>
        </tr>
      <tr>
      <td>62</td>
      <td>7</td>
      <td>AE21</td>
        </tr>
      <tr>
      <td>63</td>
      <td>7</td>
      <td>AE22</td>
        </tr>
      <tr>
      <td>64</td>
      <td>8</td>
      <td>AE29</td>
        </tr>
      
      </table>
    </body>
  </html>

articlesquote

<html>
  <body>
    <table border="1">
      <tr>
      <th>id</th>
      <th>quote_id</th>
      <th>article_id</th>
        <th>qte</th>
        </tr>
      <tr>
        <td>58</td>
        <td>61</td>
        <td>2</td>
        <td>7</td>
       </tr>
      <tr>
        <td>59</td>
        <td>62</td>
        <td>3</td>
        <td>8</td>
       </tr>
      <tr>
        <td>60</td>
        <td>63</td>
        <td>1</td>
        <td>9</td>
       </tr>
       <tr>
        <td>61</td>
        <td>63</td>
        <td>2</td>
        <td>10</td>
       </tr>
      
      </table>
    </body>
  </html>

文章表

<html>
  <body>
    <table border="1">
      <tr>
        <th>article_id</th>
        <th>name</th>
      </tr>
      <tr>
        <td>1</td>
        <td>article1</td>
      </tr>
      <tr>
        <td>2</td>
        <td>article2</td>
      </tr>
      <tr>
        <td>3</td>
        <td>article3</td>
      </tr>
      
      </table>
    </body>
  </html>

现在这些表之间的关系是

用户LT; - 一个对多 - &GT;报价&LT; - 一个对多 - &GT; ArticlesQuote&LT; - 许多对一 - &GT;第

我想获得由quote_id

排序的用户编号7的所有引号中的文章

我想获得用户编号为7的报价编号63的文章

谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

试试这个:

Select a.* From articles a 
Inner Join
    articlesquote aq On a.article_id=aq.article_id 
Inner Join
    quotes q On q.quote_id=aq.quote_id 
Inner Join
    user u On u.user_id=q.user_id
Where
    u.user_id=7 and q.quote_id=63