Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / не работает условие where / 17 сообщений из 17, страница 1 из 1
23.03.2015, 13:19:55
    #38913303
Famazon12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает условие where
select *
from user u
where u.login in (select t.lo from userTest t);

почему-то не отрабатывает условие с вложенным запросом (отдельно запрос норм работает), если вручную значения подставлять то условие отрабатывает...

select *
from user u
where u.login in ('user1', 'user2');
...
Рейтинг: 0 / 0
23.03.2015, 13:25:42
    #38913317
null?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает условие where
Famazon12,

а так - where u.login in (select t.lo from userTest t where t.lo is not null);
...
Рейтинг: 0 / 0
23.03.2015, 13:25:44
    #38913318
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает условие where
Famazon12,

И что говорит ?
...
Рейтинг: 0 / 0
23.03.2015, 13:29:45
    #38913331
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает условие where
Что значит "не отрабатывает"?

Покажите DDL обеих таблиц.
...
Рейтинг: 0 / 0
23.03.2015, 13:38:38
    #38913357
Famazon12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает условие where
имеется в виду пустой результат выводит, ну тип нет совпадений.

drop table userTest;
create temporary table userTest (lo varchar(100));


LOAD DATA INFILE 'c:/userss1.csv'
INTO TABLE userTest
LINES TERMINATED BY '\n';

select *
from user u
where u.login in (select t.lo from userTest t);


Две таблицы заполняются из двух CSV файлов.
Второй CSV такой же как и первый, только я удалил там пару строчек.
...
Рейтинг: 0 / 0
23.03.2015, 13:53:13
    #38913380
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает условие where
А где DDL таблицы user?
...
Рейтинг: 0 / 0
23.03.2015, 13:53:41
    #38913384
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает условие where
И лучше для обеих - в форме SHOW CREATE TABLE.
...
Рейтинг: 0 / 0
23.03.2015, 14:21:36
    #38913444
Famazon12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает условие where
CREATE TABLE `user` (
`login` VARCHAR(100) NULL DEFAULT NULL,
`inUse` INT(11) NULL DEFAULT NULL
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;
...
Рейтинг: 0 / 0
23.03.2015, 14:23:27
    #38913450
Famazon12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает условие where
CREATE TEMPORARY TABLE `usertest` (
`lo` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
...
Рейтинг: 0 / 0
23.03.2015, 14:34:00
    #38913477
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает условие where
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
-- твой код - первая таблица
mysql> CREATE TABLE `user` (
    ->  `login` VARCHAR(100) NULL DEFAULT NULL,
    ->  `inUse` INT(11) NULL DEFAULT NULL
    -> )
    -> COLLATE='utf8_general_ci'
    -> ENGINE=InnoDB
    -> ;
Query OK, 0 rows affected (2.26 sec)

-- твой код - вторая таблица
mysql> CREATE TEMPORARY TABLE `usertest` (
    ->  `lo` varchar(100) DEFAULT NULL
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
Query OK, 0 rows affected (0.27 sec)

-- произвольные значения
mysql> INSERT INTO user (login, inUse)
    -> SELECT 'user1',1 UNION ALL
    -> SELECT 'user2',0 UNION ALL
    -> SELECT 'user3',0 UNION ALL
    -> SELECT 'user4',1 ;
Query OK, 4 rows affected (0.28 sec)
Records: 4  Duplicates: 0  Warnings: 0

-- значения из первого постинга
mysql> INSERT INTO usertest (lo)
    -> SELECT 'user1' UNION ALL
    -> SELECT 'user2' ;
Query OK, 2 rows affected (0.02 sec)
Records: 2  Duplicates: 0  Warnings: 0

-- твой запрос
mysql> select *
    -> from user u
    -> where u.login in (select t.lo from userTest t);
+-------+-------+
| login | inUse |
+-------+-------+
| user1 |     1 |
| user2 |     0 |
+-------+-------+
2 rows in set (0.03 sec)


Работает, зараза...
...
Рейтинг: 0 / 0
23.03.2015, 14:41:19
    #38913506
Famazon12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает условие where
Akina,

Я понимаю, что должно работать :)

потому что когда вручную копипастом вставляю результаты запроса:

select t.lo from userTest t

user1
user2

в условие

select *
from user u
where u.login in ('user1', 'user2');

то работает:)

короче, магия какая-то......
...
Рейтинг: 0 / 0
23.03.2015, 14:47:15
    #38913526
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает условие where
Вот так же, как я - покажи цитату с консоли. Оба SHOW CREATE TABLE, потом заполнение usertest данными и 2 запроса (литеральный и с подзапросом).
...
Рейтинг: 0 / 0
23.03.2015, 15:05:26
    #38913572
Famazon12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает условие where
Akina,

когда делаю как ты то работает

но когда заполняют таблицы через импорт из CSV то нет
...
Рейтинг: 0 / 0
23.03.2015, 15:20:27
    #38913608
Famazon12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает условие where
не понятно из-за чего не работало...

первую таблицу заполнял через импорт средствами HeidiSQ, вторую вручную запрос писал на импорт, когда обе таблицы заполнил вторым методом, то всё заработало....
...
Рейтинг: 0 / 0
23.03.2015, 15:20:57
    #38913610
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает условие where
Famazon12,

А покажите результат такого запроса:
Код: sql
1.
select t.lo from userTest t WHERE t.lo in ('user1', 'user2')
...
Рейтинг: 0 / 0
23.03.2015, 15:27:42
    #38913624
Famazon12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает условие where
miksoft,

ничего не находит о_О
...
Рейтинг: 0 / 0
23.03.2015, 15:34:51
    #38913631
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает условие where
Famazon12miksoft,

ничего не находит о_ОТогда найдите нужные записи в userTest другим способом и покажите HEX(t.lo)
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / не работает условие where / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]