Задавайте вопросы, мы ответим
Вы не зашли.
Сам запрос очень большой и собирает инфу с 7 таблиц, и все вроде ничего но вот восьмая таблица никуда не лезет
вобщем упрощу задачу и сведу её к 2м таблицам
1я obj поле одно Id int(11);
2я lok поля oid int(11) , uid(11);
Данные:
obj: lok:
Id oid uid
1 3 1
2 2 1
3 1 1
4
5
6
поля Id и oid говорят об объекте, uid о пользователе
Нужны все Id которых нет в lok.
Мой код:
SELECT obj.Id, lok.uid, lok.oid from obj, lok WHERE lok.uid = 1 AND
obj.Id != lok.oid
но я явно протупил ))
Подскажите плиз.
Отредактированно Cresh (28.05.2008 20:56:29)
Неактивен
Отредактированно vasya (28.05.2008 21:11:15)
Неактивен
Спасибо, но я не силен в SQL и про объединения только читал.
Не прикрутите ли мне этот запрос к этому:
SELECT DISTINCT objects.Id as id, objects.name, pleers.code as pleer FROM objects, pleers, timeMatch, looking WHERE
objects.pleer = pleers.Id AND
objects.userId = '1' AND
LOCATE('2', objects.week) != 0 AND
(timeMatch.oid = objects.Id AND (timeMatch.startTime <= '44000' AND
timeMatch.endTime >= '44000' AND LOCATE('2', timeMatch.week) != 0) ) AND
objects.ban != '1' AND
( looking.time >= 1211130802 AND (looking.uid = '1' AND objects.Id != looking.oid) )
Соответственно lok это looking а obj это object
а дамп базы тут: flytone .ru/fly.sql
Неактивен
Что-то типа
Неактивен
looking.uid это пользователь который смотрел объект
если записи о нем нет значит он еще не смотрел объект ))
Неактивен
Написал вот так:
SELECT objects.Id as id, pleers.code, objects.name, objects.link FROM objects LEFT JOIN looking ON (objects.Id=looking.oid AND looking.uid = '".$uid."' AND looking.time > '1211014305' )
LEFT JOIN timeMatch ON objects.Id=timeMatch.oid
LEFT JOIN pleers ON objects.pleer=pleers.Id
WHERE objects.ban != '1'
AND objects.userId = '".$user."'
AND objects.place = '".$place."'
AND (timeMatch.startTime <= '".$timeMatch."' AND timeMatch.endTime >= '".$timeMatch."' AND Locate('".$week."', timeMatch.week) != 0)
AND looking.oid Is NULL
Order By timeMatch.startTime DESC, timeMatch.endTime, timeMatch.week DESC, Rand()
Limit 1;
Неактивен
работает?
Неактивен