SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 04.05.2012 17:23:09

walik
Участник
Зарегистрирован: 05.10.2011
Сообщений: 17

Выборка из разных таблиц

Есть три таблицы:

Payments
| id | product_type | product_id | amount |
------------------------------------------
| 1 |    projects     |       1        | 100.00  |
| 2 |    services     |       1        | 150.00  |

Projects
| id |     name     |
------------------
| 1 | Some Project name |

Services
| id |     name     |
------------------
| 1 | Some Service name |


В таблицах Projects и Services поля разные, одинаковые только name и id.  Их я и оставил так как они мне  и нужны в данном примере

В таблице Payments, в поле product_type хранится значение типа продукта (их только 2 может быть,  они одинаковы с названиями таблиц), поле product_id хранит id продукта.


Я выбираю все записи из таблицы Payments:

SELECT * FROM `payments`


Мне надо получить имя услуги (пример необходимого результата ниже). Как вставить JOIN что бы имя брать из той таблицы, имя которой хранится в поле product_type ?


Пример необходимого результата:

| id | product_type | product_id | amount |    product_name     |
---------------------------------------------------------------
| 1 |    projects     |       1        | 100.00  | Some Project name |
| 2 |    services     |       1        | 150.00  | Some Service name |


Возможно ли название таблиц подставлять динамечески или что то в этом духе ?

Неактивен

 

#2 04.05.2012 18:10:03

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Выборка из разных таблиц

SELECT .. FROM `payments` p join `Projects` p1 on p.product_id=p1.id where p.product_type='projects'
union
SELECT .. FROM `payments` p join `Services` p1 on p.product_id=p1.id where p.product_type='services'


Диамически можно только через подготовленные выражения
http://sqlinfo.ru/forum/viewtopic.php?id=363

Неактивен

 

#3 04.05.2012 18:54:38

walik
Участник
Зарегистрирован: 05.10.2011
Сообщений: 17

Re: Выборка из разных таблиц

Спасибо большое, получается то что надо

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson