Подскажите, что я делаю не так?

Статус
В этой теме нельзя размещать новые ответы.

lamo

Постоялец
Регистрация
1 Июл 2008
Сообщения
51
Реакции
4
Таблицы:

iusers
$query = "CREATE TABLE iusers
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
name VARCHAR(20),
city VARCHAR(30),
status SMALLINT,
pos SMALLINT
)


iuser_service
$query = "CREATE TABLE iuser_service
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
user_id SMALLINT,
serv_id SMALLINT,
doplata VARCHAR(10)
)

Делаю запрос:
Код:
SELECT DISTINCT(iuser.id) FROM iuser,iuser_service WHERE iuser.status=1 AND iuser_service.id='3' AND iuser_service.user_id=iuser.id ORDER BY iuser.pos ASC LIMIT 0,10

Хотя я точно знаю что есть пользователь у которго iuser_service.id='3' и iuser.status=1 ... но почему то запрос выполняется с нулевым результатом.. уже голову сломал не могу понять в чем причина...
 
SELECT DISTINCT(iuser.id) FROM iuser,iuser_service WHERE iuser.status=1 AND iuser_service.id='3' AND iuser_service.user_id=iuser.id ORDER BY iuser.pos ASC LIMIT 0,10
Где у тебя таблица iuser с полем pos?
 
SELECT DISTINCT(iuser.id) FROM iuser,iuser_service WHERE iuser.status=1 AND iuser_service.id='3' AND iuser_service.user_id=iuser.id ORDER BY iuser.pos ASC LIMIT 0,10
Где у тебя таблица iuser с полем pos?

Забыл дописать в условии... просто не стал публиковат все поля таблицы, в итоге удалил те... что использую в примере... это поле есть (исправил 1-й пост)

Добавлено через 9 минут
А вот такой запрос выполняется нормально:

Код:
SELECT DISTINCT(iuser.id) FROM iuser,iuser_service WHERE iuser.status=1 ORDER BY iuser.pos ASC LIMIT 0,10

но как только появляеттся условие
Код:
AND iuser_service.user_id=iuser.id

то тут что то НУЛЬ...

смысл запроса таков - выбрать всех пользователей (id) у которых есть услуга (iuser_service.id=3) две таблицы взаимосвязаны через id (iuser) и через user_id (iuser_service)...
 
Забыл дописать в условии... просто не стал публиковат все поля таблицы, в итоге удалил те... что использую в примере... это поле есть (исправил 1-й пост)
Добавлено через 9 минут
А вот такой запрос выполняется нормально:
Код:
SELECT DISTINCT(iuser.id) FROM iuser,iuser_service WHERE iuser.status=1 ORDER BY iuser.pos ASC LIMIT 0,10
но как только появляеттся условие
Код:
AND iuser_service.user_id=iuser.id
то тут что то НУЛЬ...
смысл запроса таков - выбрать всех пользователей (id) у которых есть услуга (iuser_service.id=3) две таблицы взаимосвязаны через id (iuser) и через user_id (iuser_service)...
создал таблицы добавил тестовые данные все работает. значит у тебя просто iuser_service.user_id=iuser.id нету совпадающих ключей. это 100% смотри внимательно.

Добавлено через 1 минуту
и еще в шапке таблица iusers а в запросе iuser может в этом причина? может у тебя в iusers есть записи а в iuser нету?
 
  • Нравится
Реакции: lamo
Все понял.. извиняюсь за свою же тупоту...
просто надо было не iuser_service.id='3' а iuser_service.serv_id='3'
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху