Я пытаюсь привести одну строку из 3 (или более) разных строк с отображением только одного изображения - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь получить одну строку из 3 (или более) разных строк, отображая только одно изображение, и IsOriginal = 1 на основе того же штрих-кода (или идентификатора).

Вот моя таблица для пример:

Продукты

---------------------------------------------------------------
|  id  | IsOriginal |    Name    |    Brcode    |    Image    |
---------------------------------------------------------------
|  1   |     0      |   Pasta    |  123456789   |  pasta1.jpg |
---------------------------------------------------------------
|  1   |     0      |   Pasta    |  123456789   |  pasta2.jpg |
---------------------------------------------------------------
|  1   |     1      |   Pasta    |      1       |     NULL    |
---------------------------------------------------------------

Я пытаюсь привести это:

---------------------------------------------------------------
|  id  | IsOriginal |    Name    |    Brcode    |    Image    |
---------------------------------------------------------------
|  1   |     1      |   Pasta    |      1       |  pasta1.jpg |
---------------------------------------------------------------

Вот мой код:

SELECT 
    p1.id, 
    p1.IsOriginal, 
    p1.Name, 
    p1.Brcode, 
    p2.Image as Image
FROM Products p1
join Products p2
on p1.id = p2.id
where p1.IsOriginal = 1

и p2.Image не является нулевым

1 Ответ

0 голосов
/ 20 апреля 2020

Это то, что вы хотите?

select p.*,
       (select p2.image
        from products p2
        where p2.id = p.id and p2.image is not null
        fetch first 1 row only
       ) as imputed_image
from products p
where isOriginal = 1;

Возвращает произвольное изображение для того же идентификатора.

...