簡體   English   中英

主義左派多對一

[英]Doctrine left join Many to one

我有一個表client和一個表client_evolution ,具有OneToMany關系。 client_evolution表中,我有3個用於當前客戶端的條目。 使用Left Join獲取數據我總是從client_evolution中獲得ID最小的第一個條目,我需要的是最新行。 我嘗試進行子選擇,但沒有成功。

->addSelect('(
    SELECT ce.id
    FROM ClientEvolution cev
    WHERE cev.client = c.id
    GROUP BY cev.client
    ORDER BY cev.id DESC) AS cevol')

我需要此表中的多個字段。 請幫忙。

GROUP BY就是為什么每個客戶端僅獲得一個條目以及SELECT缺少客戶端表的原因。 這將按客戶端ID的順序為您提供兩個表之間的所有字段。 要僅獲取每個客戶端ID的最新行,請查看MySQL Group By以顯示最新結果

->addSelect('(
    SELECT *
    FROM ClientEvolution cev, Client c
    WHERE cev.client = c.id
    ORDER BY cev.client, cev.id DESC)')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM