|
|
|
Несколько join-ов в одно поле
|
|||
|---|---|---|---|
|
#18+
Есть таблица с продуктами: -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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 10:27 |
|
||
|
Несколько join-ов в одно поле
|
|||
|---|---|---|---|
|
#18+
iAdil, А зачем таблиц с ценами более одной? У одного и того же товара могут быть одновременно и PRICE_AUTO, и PRICE_MOTO ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 10:30 |
|
||
|
Несколько join-ов в одно поле
|
|||
|---|---|---|---|
|
#18+
miksoft, Ну просто так получилось, структура бд не моя. Я могу получить пару полей PRICE, а потом в php их отфильтровать, но может есть более красивое решение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 10:33 |
|
||
|
Несколько join-ов в одно поле
|
|||
|---|---|---|---|
|
#18+
iAdilКак сделать чтобы выбиралось одно поле PRICE Если структура данных такова, что только одна из двух цен присутствует в данных, а вторая гарантированно NULL, то используем COALESCE(). Если хотя бы одна гарантированно не NULL - можно использовать и более простую IFNULL(). Если же возможны обе цены для одного продукта - то это тебе решать, какую из двух выводить. Впрочем, функции использовать те же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 10:33 |
|
||
|
Несколько join-ов в одно поле
|
|||
|---|---|---|---|
|
#18+
iAdil, у одного товара только одно, второе поле при join будет NULL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 10:34 |
|
||
|
Несколько join-ов в одно поле
|
|||
|---|---|---|---|
|
#18+
iAdil, Вы не ответили на мой второй вопрос. Если ответ отрицательный, то можно так - COALESCE(PRICE_AUTO, PRICE_MOTO) as PRICE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 10:35 |
|
||
|
Несколько join-ов в одно поле
|
|||
|---|---|---|---|
|
#18+
Спасибо! COALESCE было именно то что хотел узанть! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 10:47 |
|
||
|
Несколько join-ов в одно поле
|
|||
|---|---|---|---|
|
#18+
iAdilmiksoft, Ну просто так получилось, структура бд не моя. Я могу получить пару полей PRICE, а потом в php их отфильтровать, но может есть более красивое решение красивое решение - взять эту бд и переделать нормально. уже после этого с ней начинать работать. переделку на самом деле все равно придется когда-то делать. чем раньше, тем будет проще жить вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2016, 07:55 |
|
||
|
Несколько join-ов в одно поле
|
|||
|---|---|---|---|
|
#18+
[quot iAdil]Есть таблица с продуктами: -products ---ID ---NAME Есть еще таблицы например с ценами продуктов: -auto_prices ---ID ---PRODUCT_ID ---PRICE_AUTO -moto_prices ---ID ---PRODUCT_ID ---PRICE_MOTO должна быть одна таблица вместо последних двух: product_price ---PRODUCT_ID ---PRICE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2016, 07:57 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39145192&tid=1832281]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
189ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 464ms |

| 0 / 0 |
