|
|
|
|
|
для: Trianon
(29.06.2008 в 00:50)
| | Глубочайшие изинения =) Запрос работает. Просто у меня таблица click удаляется и создаётся заново каждый день в 00.00 по Москве =) Я забыл заново её заполнить и проверял запрос, полагая, что ней есть данные =) Сейчас вставил ваш запрос, проверил, вроде, все возможные варианты, которые могут возникнуть при работе скрипта, всё работает как надо. Спасибо. Реально Вы мне помогли, а то я уже отчаялся. Я MySQL недавно только начал осваивать, пока ещё путаюсь. Я пробовал примерно такой запрос, только проверял click.ip на NULL... Ступил =) | |
|
|
|
|
|
|
|
для: Trianon
(29.06.2008 в 00:50)
| | Да, проверил. Всегда возвращает все id-ы. | |
|
|
|
|
|
|
|
для: Phantom
(28.06.2008 в 20:00)
| | Это не лишнее условие. Это условие соединения таблиц согласно Вашему описанию.
Вы проверили запрос? | |
|
|
|
|
|
|
|
для: Trianon
(28.06.2008 в 10:45)
| | В руководстве по MySQL написано, что в части ON не нужно лишних условий пихать, для этого есть WHERE. А ваш запрос в любом случае возвращает все ID-ы, что есть в таблице serf. Не работает. | |
|
|
|
|
|
|
|
для: Phantom
(28.06.2008 в 09:57)
| |
SELECT serf.id FROM serf
LEFT JOIN click ON serf.id=click.uid AND click.ip=$ip
WHERE click.uid IS NULL
|
| |
|
|
|
|
|
|
|
для: а-я
(28.06.2008 в 08:16)
| | Нет, нет. И INET_ATON тут не нужен. IP адрес уже преобразован как надо
Нужно что-то вроде этого:
"SELECT serf.id FROM serf LEFT JOIN click ON serf.id=click.uid WHERE click.ip!=$ip"
или этого:
"SELECT serf.id FROM serf,click WHERE click.ip=$ip and serf.id!=click.uid"
Но оба способа работают не так, как надо. =( *WALL* | |
|
|
|
|
|
|
|
для: Phantom
(27.06.2008 в 19:01)
| | что-то не понял....
может так?
$ip = 123;
$SQL = '
SELECT
`tbl1`.`id`
FROM
`tbl1`,`tbl2`
WHERE
`tbl1`.`id` != `tbl2`.`uid`
AND
`tbl2`.`ip`!= INET_ATON("'.$ip.'")';
mysql_query($SQL);
|
| |
|
|
|
|
|
|
|
для: Phantom
(27.06.2008 в 19:01)
| | Блин, помогите. Уже почти неделю голову ломаю. | |
|
|
|
|
|
|
| Здравствуйте. Задача такая. Есть две таблицы. Структура первой в принципе не важна, нужно лишь знать, что в ней есть поле id с цЫферками. Ну например так:
Структура второй примерно такая (строк может и не быть вовсе, а может быть миллион):
id uid ip
1 2 123
2 2 456
3 3 456
4 3 789
|
По идее, в ip будут находиться ip-адреса, переведённые в числовой формат. Но для примера и так сойдёт. Нужно составить такой sql запрос, чтобы он вернул список id-ов первой таблицы, но исключил из него те id-ы, которые присутствуют в uid второй таблицы, ip которых совпадает с ip посетителя.
То есть, если, грубо говоря, ваш ip в данный момент 123, то запрос должен вернуть (см. пример выше) такой список:
Если ваш ip = 456, то:
Если ваш ip = 789, то:
Если ваш ip = 000 (его нет в таблице вообще), то:
Задача сложнее, чем кажется на первый взгляд. Я уже как только не делал, всё бестолку. | |
|
|
|
|