У меня сейчас есть такой запрос:
SELECT
topic.content_id,
topic.title,
image.location
FROM
mps_contents AS topic
INNER JOIN mps_contents as image
ON topic.content_id = image.page_id
WHERE
topic.page_id = (SELECT page_id FROM mps_pages WHERE page_short_name = 'foo' )
AND image.display_order = '1'
Это потому, что я хочу объединить две строки из одной таблицы в одну строку.Это упрощенная настройка таблицы
-----------------------------------------------------------
| page_id | content_id | title | location | display_order |
-----------------------------------------------------------
| 1 | 200 | Foo | NULL | 200 |
| 200 | 201 | Bar | jpg.jpg | 1 |
-----------------------------------------------------------
И, в принципе, я хочу получить этот результат
---------------------------------
| content_id | title | location |
---------------------------------
| 200 | Foo | jpg.jpg |
---------------------------------
Итак, Foo
- это 200-я тема на странице 1 (Foo
рассматривается какподстраница и все ее содержимое хранятся в одной и той же таблице), а Bar
- это ее рекомендуемое изображение (показывается только потому, что это 1-е изображение)
Приведенный выше запрос эффективно объединяет две строки (возвращает желаемоерезультат), но также возвращает дополнительную строку, соответствующую исходной строке для Foo
, то есть местоположение имеет значение NULL.
Я надеюсь, что кто-то может помочь мне предотвратить запрос этой строки на возврат.