簡體   English   中英

MySQL的多個結果到一個結果行

[英]mySQL multiple results into one result row

我有一個按產品ID存儲圖像URL的表,正在嘗試編寫一個將所有圖像結果拉到一行的查詢。 該表如下所示:

photoFlag photoName objectID

其中,photoName保存圖像的相對路徑,而photoFlag標識圖像的類型(完整,拇指等)。 我首先編寫一個快速查詢來獲取兩個圖像(帶有不同的標志)以進行上拉。 這就是我所擁有的:

select t2.pic, t4.pic, t2.id from
 (select p2.photoName as pic, p2.objectID as id from ds_photos as p2 where p2.photoFlag = 2) as t2,
 (select p4.photoName as pic, p4.objectID as id from ds_photos as p4 where p4.photoFlag = 4) as t4
where t2.id=t4.id

這似乎是一個正確的查詢,但是當我通過phpMyAdmin執行時,它永遠不會返回結果,並且會在“ SHOW PROCESS”列表中無限期顯示(至少約40分鍾)。 是否有我在這里看不到的錯誤導致環環相扣?

理想情況下,我只想抓取photoFlag = 2的照片(某些產品具有多張圖像)並將它們放在同一行中,但是我不知道從哪里開始。 有什么建議么?

謝謝您的幫助。

使用: GROUP_CONCAT

SELECT id, GROUP_CONCAT(photoName ) As pic 
FROM ds_photos 
WHERE (photoFlag = 2 or photoFlag = 4) and id = ?;
GROUP BY id

取代? 與您想要的ID。

暫無
暫無

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

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