powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с подзапросом...
12 сообщений из 12, страница 1 из 1
Помогите с подзапросом...
    #33372249
Фотография Viktor Bartel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день,

Вот пытаюсь выполнить следующий простенький подзапрос:
SELECT id_note, note_head, note_body, note_date
FROM infos AS i
WHERE i.id_note in (SELECT id_kind, kind_name FROM syskinds AS s WHERE s.kind_name = "news")

Посмотрел в справочнике, вроде бы синтаксис правильный, но в результате получаю следуещее сообщение:
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id_kind , kind_name FROM syskinds AS s WHERE s . kind_na

Кто нибудь знает в чем дело? Спасибо за любую помошь.
...
Рейтинг: 0 / 0
Помогите с подзапросом...
    #33372255
Владимор Конев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor BartelДобрый день,

Вот пытаюсь выполнить следующий простенький подзапрос:
SELECT id_note, note_head, note_body, note_date
FROM infos AS i
WHERE i.id_note in (SELECT id_kind, kind_name FROM syskinds AS s WHERE s.kind_name = "news")

Посмотрел в справочнике, вроде бы синтаксис правильный, но в результате получаю следуещее сообщение:
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id_kind , kind_name FROM syskinds AS s WHERE s . kind_na

Кто нибудь знает в чем дело? Спасибо за любую помошь.Ну друг, такой запрос не может быть верным по определению...
Ведь посмотри на подзапрос. У тебя там выбирается ДВА поля, а по идее (если верить ANSI-SQL) должно выбираться только ОДНО поле
Попробуй вот так:
Код: plaintext
1.
2.
SELECT id_note, note_head, note_body, note_date
FROM   infos AS i
WHERE  i.id_note in (SELECT id_kind /*, kind_name */ FROM syskinds AS s WHERE s.kind_name = "news")
...
Рейтинг: 0 / 0
Помогите с подзапросом...
    #33372263
Владимор Конев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроме того, удостоверься, что твоя версия СУБД умеет работать с подзапросами.
Тынц №1 - Подзапросы были не всегда
...
Рейтинг: 0 / 0
Помогите с подзапросом...
    #33372269
Фотография Viktor Bartel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо я посмотрел, все равно не работает,
т.к. подзапросы появились только в версии 4.1.
А у провайдеров стоит
mySQL 4.0.23a
4.0.25-standard
...
Рейтинг: 0 / 0
Помогите с подзапросом...
    #33372275
Владимор Конев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktor BartelСпасибо я посмотрел, все равно не работает,
т.к. подзапросы появились только в версии 4.1.
А у провайдеров стоит
mySQL 4.0.23a
4.0.25-standardВнимательно кури все топики по той ссылке, что я тебе кинул. Ведь там даже лекарство прописано - LEFT/RIGHT OUTER JOIN.
Вот и перепиши запрос так, что бы он не содержал подзапроса, но имел в себе внешнее соединение твоих двух таблиц...
...
Рейтинг: 0 / 0
Помогите с подзапросом...
    #33372276
Владимор Конев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя, конкретно в твоём случае, за глаза хватит и обычного INNER JOIN-а :)
...
Рейтинг: 0 / 0
Помогите с подзапросом...
    #33372280
Владимор Конев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так не пойдёт???
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT i.id_note, 
       i.note_head, 
       i.note_body, 
       i.note_date
  FROM infos AS i INNER JOIN 
       syskinds AS s 
    on (i.id_note = s.id_kind )
 WHERE s.kind_name = "news"
...
Рейтинг: 0 / 0
Помогите с подзапросом...
    #33373155
Фотография Viktor Bartel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пойдет,

Спасибо большое, все заработало.
...
Рейтинг: 0 / 0
Помогите с подзапросом...
    #33373237
Фотография Viktor Bartel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А скажите а как можно сделать если усложнить немного наш запрос:

SELECT i.id_note, i.note_head, i.id_kind, i.note_body, i.note_date
FROM infos AS i
INNER JOIN syskinds AS s ON ( i.id_kind = s.id_kind )
WHERE s.kind_name = "news"

Добавив к нему как нибудь следующее:

SELECT max(id_note)
FROM infos
WHERE id_kind="news"

Если бы были подзапросы, то я примерна вижу как ето сделать, но без подзапросов, ума не приложу.
...
Рейтинг: 0 / 0
Помогите с подзапросом...
    #33374407
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и куда ты собираешься это значение совать?
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
Помогите с подзапросом...
    #33374413
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в каждую строчку результата?
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
Помогите с подзапросом...
    #33374935
Фотография Viktor Bartel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всетаки вы правы,

Некуда его пока здесь совать, я пожалуй подожду пока провайдер версию mysql обновит.
Спасибо запомошь.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с подзапросом...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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