и снова объединение трёх таблиц

spender

Guest
и снова объединение трёх таблиц

Имеются таблицы:
orders
orderId | clientId | serviceId
-------------------------------------------
№заказа-1|№клиента-1|№услуги-1
№заказа-2|№клиента-2|№услуги-2
№заказа-3|№клиента-3|№услуги-3
* * * * * * * * * * * * *
№заказа-n|№клиента-n|№услуги-n
-------------------------------------------

service1
service1Id | service1Price|
----------------------------------
№услуги-1| стоим.услуги1
№услуги-2| стоим.услуги2
№услуги-3| стоим.услуги3
* * * * * * * * * * *
№услуги-n| стоим.услуги-n
------------------------------------

запрос
PHP:
select * from service1, orders where orders.clientId='$clientId' and orders.serviceId=service.service1Id order by $orderBy;
работает нормально и из него можно вытянуть 'service1Price' (цену товара)

Проблемма в следующем: появилась таблица service2 (столбцы: service2Id; service2Price). Подскажите, как за один запрос проверять в какой из двух таблиц содержится 'serviceId'.
Можно было бы конечно сперва выводить в табличку результат от запроса
PHP:
select * from service1, orders where orders.clientId='$clientId' and orders.serviceId=service.service1Id order by $orderBy;
, а затем от
PHP:
select * from service2, orders where orders.clientId='$clientId' and orders.serviceId=service.service2Id order by $orderBy;
, но тогда невозможно будет сортировать таблицу , например, по цене
 

Profic

just Profic (PHP5 BetaTeam)
Для того чтобы получить то же самое по-русски нужно приложить немного умственных способностей и поменять в урле 2 (две!) буквы.
 

spender

Guest
Автор оригинала: Profic
mysql.com/union
Класс! Охренительный способ за умного сойти: на любой вопрос отвечать mysql.com/union

Надо своего диррректора туда же послать
 

Profic

just Profic (PHP5 BetaTeam)
Посылай, только твои умственные способности не дали понять что я имел ввиду. Для убогих.
 

Sherman

Mephi
если таблицы services не слишком различаются, то тогда можно сделать так:

orders (order_id)
services(serviceId, serviceTypeId)
services_type (serviceTypeId)

тогда может быть n-сервисов.
 
Сверху