|
|
|
| Есть три таблицы
drivers водители
id | age
---------
1 | 25
cars - Их машины
id_car | user_id | carname
------------------------------
1 | 1 | Toyota Carolla C6
rental - Сдача в прокат (номер машины, кто брал на прокат, дата проката)
id_car | user_id | date
------------------------------
1 | 7 | 24.04.2009
Как мне выбрать всё из таблицы машин - для тех машин, чей владелец старше 30 лет,
их не брали в прокат в этот же день, и владелец машины, это не водитель просматривающий список. ($myid = 1) | |
|
|
|
|
|
|
|
для: _Efim_
(27.04.2009 в 23:28)
| | Или подскажите более оптимальный вариант если есть такой при реализации в php, или несколькими отдельными запросами, нежели одним. Потому что страница эта просматривается очень часто, и время формирования такого списка, как и нагрузка - критичны.
Заранее благодарю за отзывчивость и идеи =) | |
|
|
|
|
|
|
|
для: _Efim_
(27.04.2009 в 23:28)
| |
SELECT c.*
FROM сars c
JOIN drivers d ON c.user_id = d.id
LEFT JOIN rental r ON c.id = r.id_car AND `date` = $thisday
WHERE d.age >= 30 AND d.id <> $myid AND r.id_car IS NULL
|
ps1. Если это MySQL - дата в таком формате храниться не должна.
ps2. Перед тем как думать насчет оптимизации, нужно решить задачу в принципе. | |
|
|
|