0
我有三個表格 - p,m和i。 M是p和i的連接表,並且具有距離屬性以確定我距離p有多遠。我想要做的就是爲每個p選擇我所有的p,如果它還沒有被選爲前一個p。既然你不能只爲一列調用select distinct,我對於我能做的事情有些困惑。現在我的查詢如下(希望仍然很容易跟着我試圖讓它有點含糊):只有在尚未選擇連接的連接表時才進行選擇
select p.id, p.name, m.distance, i.id from p join m on p.id=m.p_id join i on m.i_id=i.id where m.distance <= 30 order by p.name;
基本上,我只希望我相關聯的p如果它不是更接近另一P(這將由m.distance確定)。有很多我的項目超過30,我根本不需要這些。
現在一直在我的頭上反抗了一個小時。我非常感謝一些見解。
謝謝。我只是想通了,來到這裏檢查我是否準確,並得到了相同的答案。我還選擇min(distance)作爲我的外部查詢的距離,以確保mysql在多個時選擇最接近的i。從我閱讀的內容來看,當你使用一個組時,它有時可以隨機選擇一個,我想確保它沒有。也許我錯了,這是對SQL的浪費,但它解決了我的問題。感謝您的答覆。 – Skyline969