powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Несколько join-ов в одно поле
9 сообщений из 9, страница 1 из 1
Несколько join-ов в одно поле
    #39145181
iAdil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица с продуктами:

-products
---ID
---NAME
Есть еще таблицы например с ценами продуктов:

-auto_prices
---ID
---PRODUCT_ID
---PRICE_AUTO

-moto_prices
---ID
---PRODUCT_ID
---PRICE_MOTO
Хочу взять результаты с полями ID,NAME,PRICE

SELECT
ID,
NAME,
PRICE_AUTO as PRICE,
PRICE_MOTO as PRICE
FROM products p
LEFT JOIN auto_prices ap on p.ID = ap.PRODUCT_ID
LEFT JOIN moto_prices mp on p.ID = mp.PRODUCT_ID
Но тогда появляется два поля PRICE
ID,NAME,PRICE,PRICE

Как сделать чтобы выбиралось одно поле PRICE
...
Рейтинг: 0 / 0
Несколько join-ов в одно поле
    #39145187
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iAdil,

А зачем таблиц с ценами более одной?
У одного и того же товара могут быть одновременно и PRICE_AUTO, и PRICE_MOTO ?
...
Рейтинг: 0 / 0
Несколько join-ов в одно поле
    #39145191
iAdil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Ну просто так получилось, структура бд не моя.
Я могу получить пару полей PRICE, а потом в php их отфильтровать, но может есть более красивое решение
...
Рейтинг: 0 / 0
Несколько join-ов в одно поле
    #39145192
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iAdilКак сделать чтобы выбиралось одно поле PRICE
Если структура данных такова, что только одна из двух цен присутствует в данных, а вторая гарантированно NULL, то используем COALESCE(). Если хотя бы одна гарантированно не NULL - можно использовать и более простую IFNULL().
Если же возможны обе цены для одного продукта - то это тебе решать, какую из двух выводить. Впрочем, функции использовать те же.
...
Рейтинг: 0 / 0
Несколько join-ов в одно поле
    #39145194
iAdil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iAdil,

у одного товара только одно, второе поле при join будет NULL
...
Рейтинг: 0 / 0
Несколько join-ов в одно поле
    #39145198
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iAdil,

Вы не ответили на мой второй вопрос.
Если ответ отрицательный, то можно так - COALESCE(PRICE_AUTO, PRICE_MOTO) as PRICE
...
Рейтинг: 0 / 0
Несколько join-ов в одно поле
    #39145210
iAdil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!

COALESCE было именно то что хотел узанть!
...
Рейтинг: 0 / 0
Несколько join-ов в одно поле
    #39146931
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iAdilmiksoft,

Ну просто так получилось, структура бд не моя.
Я могу получить пару полей PRICE, а потом в php их отфильтровать, но может есть более красивое решение

красивое решение - взять эту бд и переделать нормально. уже после этого с ней начинать работать.
переделку на самом деле все равно придется когда-то делать. чем раньше, тем будет проще жить вам.
...
Рейтинг: 0 / 0
Несколько join-ов в одно поле
    #39146932
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot iAdil]Есть таблица с продуктами:

-products
---ID
---NAME
Есть еще таблицы например с ценами продуктов:

-auto_prices
---ID
---PRODUCT_ID
---PRICE_AUTO

-moto_prices
---ID
---PRODUCT_ID
---PRICE_MOTO


должна быть одна таблица вместо последних двух:


product_price

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


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