[英]Select from within same MySql table based on id
我正在構建一個基本的相冊頁面,頂部是 selectec 照片,下面是相冊縮略圖的 rest。 URL的結構如下:
/photos/photo.php?id=164
表結構包含事件、文件名和 ID 字段
事件字段可以歸因於來自同一事件的多個圖像。 事件字段也可以連接到事件表,它將同一事件下的不同種族聚集在一起。
對於下面的縮略圖,我想 select 除了 ID 在 URL 中的那張照片之外,對於與 ZE6B391A8D2C4D45903DZA23 中的 GET 相關聯的事件。
我相信需要一個內部連接,但我正在努力讓它發揮作用。 這是我的查詢,它可以 select 照片不是正在顯示的照片(來自 URL) - 但它不能限制為僅顯示與正在顯示的圖像相同的事件的其他照片。
SELECT distinct pg.`filename`, pg.`event`, pg.`id`
from photogallery pg
INNER JOIN photogallery pg2 on pg.`event` = pg2.`event`
WHERE pg.`id` <> 302 and pg.`event` = pg2.`event`
示例數據集:
Filename ¦¦ Event ¦¦ ID
1983-1.jpg ¦¦ 1983 ¦¦ 1
1983-2.jpg ¦¦ 1983 ¦¦ 2
1983-3.jpg ¦¦ 1983 ¦¦ 3
2001-1.jpg ¦¦ 2001 ¦¦ 4
2001-2.jpg ¦¦ 2001 ¦¦ 5
2001-3.jpg ¦¦ 2001 ¦¦ 6
如果 GET 設置為 1,我希望查詢僅顯示 ID 2 和 3。但它顯示的 ID 為 2、3、4、5、6。
您可以通過對 equal event
進行內部自我加入來做到這一點。 但是您需要在其中一個實例中過濾尋找的id
,並在兩個實例中過濾id
的不相等性。
SELECT pg1.filename,
pg1.event,
pg1.id
FROM photogallery pg1
INNER JOIN photogallery pg2
ON pg1.event = pg2.event
WHERE pg2.id = 1
AND pg1.id <> pg2.id;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.