Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 3
Регистрация: 21.07.2012
Сообщений: 136

Or и and в sql запросах

05.12.2017, 11:22. Показов 1376. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите кто может есть 2 запроса
SQL
1
2
3
4
5
6
7
SELECT dt.id, dt.namefile
FROM jointable jt
JOIN dt ON
Jt.idbase=dt.id
JOIN tagetable ON
Jt.idtege=tagetable.id
WHERE tage LIKE `w%` OR tage LIKE`e%`
Так все работает когда ставлю and ничего не выбирает хотя данные есть
SQL
1
2
3
4
5
6
7
SELECT dt.id, dt.namefile
FROM jointable jt
JOIN dt ON
Jt.idbase=dt.id
JOIN tagetable ON
Jt.idtege=tagetable.id
WHERE tage LIKE `w%` AND tage LIKE`e%`
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.12.2017, 11:22
Ответы с готовыми решениями:

SQL инъекции в запросах
Доброго дня Написал маленький сайт (ни чего особенного, одна страница + SQL), и почти сразу же его взломали. Люди сказали, что это была...

Использование LIKE в SQL-запросах
Задача: есть база (хватает одной таблицы), где одно из полей имеет строковый формат. Нужно из всех записей с помощью SQL-запроса...

Спецсимволы в SQL запросах
кто-нибудь знает, как пишется запрос на выборку WHERE одно из полей текстовое и содержит и кавычки, и апострофы? То есть мне нужно сделать ...

28
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
05.12.2017, 11:29
Цитата Сообщение от dem_on Посмотреть сообщение
WHERE tage LIKE `w%` AND tage LIKE`e%`
Одно слово НИКОГДА не может начинаться на w И на e.
Только на w ИЛИ на e.
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
05.12.2017, 11:33
Судя по неправильным апострофам вы вообще зашли не на тот форум!
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
05.12.2017, 11:33
Строка не может начинаться одновременно с 2 разных символов. Предположу, что решение такое
SQL
1
WHERE tage LIKE `w%e%` OR tage LIKE `e%w%`
1
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
05.12.2017, 11:52
T-SQL
1
WHERE tage LIKE '[ew]%'
1
0 / 0 / 3
Регистрация: 21.07.2012
Сообщений: 136
05.12.2017, 12:50  [ТС]
mobile, нет, не так. Значение 'w' и значение 'e' записаны в разных полях, а не в одном.
Структура примерно такая: Таблица с файлами, Таблица с тегами, таблица объединяющая файлы и теги. В этой таблице одному файлу может соответствовать несколько записей из таблице тегов.

Добавлено через 3 минуты
iap, спасибо так работает. За кавычки прошу прощения, печатаю с планшета, не нашёл сразу нужный. А что значат эти скобки?

Добавлено через 2 минуты
iap, скажите а в таком контексте можно для или написать?

Добавлено через 51 минуту
iap, ваш запрос это тот же or, у меня он работает, мне нужно сделать and.
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
05.12.2017, 12:54
Цитата Сообщение от dem_on Посмотреть сообщение
iap, ваш запрос это тот же or, у меня он работает, мне нужно сделать and.
Что - and???
'w' и 'e' никогда не будут равны друг другу, уверяю вас!

Нарисуйте исходные данные и нужный результат.
0
0 / 0 / 3
Регистрация: 21.07.2012
Сообщений: 136
05.12.2017, 13:34  [ТС]
Tage
Id. Tage
1. W
2. E
Dt
Id. Name
1. File1
2. File2
Jointable
Id. Dt.id. tage.id
1. 1. 1
2. 1. 2
3. 2. 1

Надо чтобы при запросе WHERE tage LIKE `w%` AND tage LIKE`e%` собрался только file1
Прошу прощения за синтаксис

Добавлено через 22 минуты
iap, надеюсь не лишом запутано
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
05.12.2017, 14:30
Цитата Сообщение от Юстаса - Алексу © :) Посмотреть сообщение
Tage
Id. Tage
1. W
2. E
Dt
Id. Name
1. File1
2. File2
Jointable
Id. Dt.id. tage.id
1. 1. 1
2. 1. 2
3. 2. 1
***
0
0 / 0 / 3
Регистрация: 21.07.2012
Сообщений: 136
06.12.2017, 09:09  [ТС]
iap, таблица со значениями что я ищу
таблица Tage 
idTage
1w
2e
таблица с данными
таблица DataTable 
idName
1File1
2File2
таблица что связывает данные со значениями по ключу
таблица JoinTable  
idIdDataIdTage
111
212
321
Надо чтобы при запросе выбрался только file1
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
06.12.2017, 10:04
Цитата Сообщение от dem_on Посмотреть сообщение
Надо чтобы при запросе выбрался только file1
SQL
1
WHERE iddata = 1 AND idtage = 1
0
0 / 0 / 3
Регистрация: 21.07.2012
Сообщений: 136
06.12.2017, 10:33  [ТС]
Grossmeister,
SQL
1
2
3
4
5
6
7
SELECT dt.id, dt.namefile
FROM jointable jt
JOIN dt ON
Jt.idbase=dt.id
JOIN tagetable ON
Jt.idtege=tagetable.id
WHERE tage LIKE 'w%' OR tage LIKE'e%'
Так выводится file1 и file2.
Надо искать по значению а не по id.
Я не могу искать по id файла, поток что я его должен получить в результате
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
06.12.2017, 12:30
Цитата Сообщение от dem_on Посмотреть сообщение
Я не могу искать по id файла
SQL
1
WHERE iddata = idtage
0
0 / 0 / 3
Регистрация: 21.07.2012
Сообщений: 136
06.12.2017, 13:35  [ТС]
Grossmeister, то ли я вас не понимаю, то ли не могу объяснить. есть таблица datatable в ней запись (с сылкой на файл) в таблице tage несколько записей которые соотведствуют одной записи из datatable.
SQL
1
2
3
4
5
6
7
SELECT dt.id, dt.namefile
FROM jointable jt
JOIN dt ON
Jt.idbase=dt.id
JOIN tagetable ON
Jt.idtege=tagetable.id
WHERE tage LIKE 'w%'
результат, будет две записи file1 и file2
как вернуть только одну запись ужесточив условие поиска путем добавления второго тега 'е'
в таком случае file2 не будет удовлетворять условие поиска по скольку у него нету тега 'е'
p.s.смотреть на таблици выше
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
06.12.2017, 14:36
Цитата Сообщение от dem_on Посмотреть сообщение
как вернуть только одну запись ужесточив условие поиска путем добавления второго тега 'е'
в таком случае file2 не будет удовлетворять условие поиска по скольку у него нету тега 'е'
Реляционное деление у вас.
Читайте что это такое и как реализовать. Способов много.
0
85 / 67 / 25
Регистрация: 09.10.2017
Сообщений: 208
06.12.2017, 17:09
Здравствуйте!

INTERSECT пробовали использовать?

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT dt.id, dt.namefile
FROM jointable jt1
JOIN dt ON
jt1.idbase=dt.id
JOIN tagetable ON
jt1.idtege=tagetable.id
WHERE tage LIKE 'w%' 
INTERSECT 
SELECT dt.id, dt.namefile
FROM jointable jt2
JOIN dt ON
jt2.idbase=dt.id
JOIN tagetable ON
jt2.idtege=tagetable.id
WHERE tage LIKE 'e%'
идея такова:
"В результирующий набор попадают только те строки, которые присутствуют в обоих запросах",
т.е. file1
0
0 / 0 / 3
Регистрация: 21.07.2012
Сообщений: 136
13.12.2017, 00:47  [ТС]
invm, то ли я попал на не полные статьи, то ли именно деление это сложный процесс и затрудняет авторов статей

Добавлено через 3 минуты
TinSemenova, дело в том что количество значений не известно. Может быть 2, а может и 6. Надо более универсальный запрос
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
13.12.2017, 11:19
dem_on, пример реляционного деления я недавно показывал. Адаптируйте его под свой случай.
0
0 / 0 / 3
Регистрация: 21.07.2012
Сообщений: 136
15.12.2017, 16:15  [ТС]
invm,
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DECLARE @s TABLE (t VARCHAR(100) PRIMARY KEY);
INSERT INTO @s
VALUES
 ('W'), ('e')
 
SELECT
 *
FROM Jointable jt
JOIN dt ON
Jt.idbase=dt.id
JOIN tagetable
Jt.idtage=tagetable.id
WHERE
 (SELECT * FROM @s WHERE tagetable.tage LIKE t+ '%') = (SELECT * FROM @s)
Что я сделал не так? пишет что обработано 2 строки но результат не вывел. Ошибка: Сообщение 512, вложенный запрос вернул больше одного значения
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
15.12.2017, 16:22
Цитата Сообщение от dem_on Посмотреть сообщение
(SELECT * FROM @s WHERE tagetable.tage LIKE t+ '%') = (SELECT * FROM @s)
чувак, сопоставь сообщение об ошибке с этим скриптом. Много думай
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.12.2017, 16:22
Помогаю со студенческими работами здесь

Переменная в запросах SQL
$Row = mysqli_fetch_assoc(mysqli_query($CONNECT, "SELECT 'password', 'active' FROM 'users' WHERE 'login' = '$_POST'")); Код должен...

Использование переменных в SQL запросах
Волнует вот такая проблемка. Пишу программу База данных по ювелирным изделия. Хотел сделать выборки с помощью SQL запросов. Но не могу...

Памогите разобраться в запросах SQL
помогите разобраться в запросах...здесь мне оч много не понятно....прокомментируйте плиз...///myconst - это я так понял таблица SELECT ...

Указание на память в sql запросах
Добрового времени суток! Вопрос: Можно ли как-то указать в sql запросе модерируемый объем памяти? Предположим есть большая база данных,...

Указание переменных в SQL-запросах
Уважаемые знатоки. Подскажите пожалуйста что делаю не так. Прочитал кучу статей, втч и справку MS...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru