powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / объединить две строки в одну
6 сообщений из 6, страница 1 из 1
объединить две строки в одну
    #39153601
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем привет
нужна помощь вот в каком вопросе - как грамотнее объединить две результирующие строки в одну?
есть такой запрос =
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT 
    wp_posts.ID,
    wp_posts.post_title,
    wp_posts.post_name,
    wp_postmeta.meta_key,
    wp_postmeta.meta_value
FROM wp_posts
LEFT JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id
WHERE wp_posts.ID = 5122 
    AND wp_postmeta.meta_key IN ('ogimg','from_here');


он возвращает вот это

но тут две строки, а надо чтобы было в одну

переделал запрос вот в такой =
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT 
    wp_posts.ID,
    wp_posts.post_title,
    wp_posts.post_name,
    (select meta_value from wp_postmeta where post_id = 5122 and meta_key = 'ogimg') as 'ogimg',
    (select meta_value from wp_postmeta where post_id = 5122 and meta_key = 'from_here') as 'from_here'
FROM wp_posts
WHERE wp_posts.ID = 5122;


запрос выглядит убого, но результат = тот что нужен


как бы пограмотнее достигнуть второго результата без использования "ламерского" запроса?

p.s. скорость выполнения у обоих запросов - одинакова
...
Рейтинг: 0 / 0
объединить две строки в одну
    #39153615
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используйте ДВЕ копии таблицы.
...
Рейтинг: 0 / 0
объединить две строки в одну
    #39153623
murtukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не проверял работоспособность кода, ибо в лом. Может я сделал где-то ошибку, но двигаться вам надо именно в этом направлении.
Таблицу wp_postmeta вам надо джоинить два раза под разными именами, для устранение неоднозначностей. При первом джоине я дал ей название t2, при втором - t3.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT 
	wp_posts.ID, 
	wp_posts.post_title, 
	wp_posts.post_name,
	t2.meta_value AS ogimg
	t3.meta_value AS from_here
FROM wp_posts
LEFT JOIN wp_postmeta AS t2 ON wp_posts.ID = t2.post_id
LEFT JOIN wp_postmeta AS t3 ON wp_posts.ID = t3.post_id

WHERE wp_posts.ID = 5122 AND t2.meta_key = 'ogimg' AND t3.meta_key = 'from_here'



Проверьте работоспособность и напиши тут о результатах. Есть вопросы - задавайте.
...
Рейтинг: 0 / 0
объединить две строки в одну
    #39153647
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
murtukov, спасибище! круть! все работает!
p.s. запятую после t2.meta_value AS ogimg забыли...
...
Рейтинг: 0 / 0
объединить две строки в одну
    #39153797
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
murtukovЯ не проверялА напрасно. Запрос - неправильный. Наличие условий в секции WHERE превращает левое связывание во внутреннее, и из итоговой выборки выпадут записи, у которых отсутствует хотя бы один из двух meta_key.
Ограничения по таблицам t2 и t3 следует перенести в секцию ON.
...
Рейтинг: 0 / 0
объединить две строки в одну
    #39154077
murtukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

так ему внутреннее связывание скорее всего и нужно
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / объединить две строки в одну
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]