Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с подзапросом... / 12 сообщений из 12, страница 1 из 1
10.11.2005, 20:13:39
    #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
10.11.2005, 20:21:19
    #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
10.11.2005, 20:28:12
    #33372263
Владимор Конев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с подзапросом...
Кроме того, удостоверься, что твоя версия СУБД умеет работать с подзапросами.
Тынц №1 - Подзапросы были не всегда
...
Рейтинг: 0 / 0
10.11.2005, 20:33:50
    #33372269
Viktor Bartel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с подзапросом...
Спасибо я посмотрел, все равно не работает,
т.к. подзапросы появились только в версии 4.1.
А у провайдеров стоит
mySQL 4.0.23a
4.0.25-standard
...
Рейтинг: 0 / 0
10.11.2005, 20:42:54
    #33372275
Владимор Конев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с подзапросом...
Viktor BartelСпасибо я посмотрел, все равно не работает,
т.к. подзапросы появились только в версии 4.1.
А у провайдеров стоит
mySQL 4.0.23a
4.0.25-standardВнимательно кури все топики по той ссылке, что я тебе кинул. Ведь там даже лекарство прописано - LEFT/RIGHT OUTER JOIN.
Вот и перепиши запрос так, что бы он не содержал подзапроса, но имел в себе внешнее соединение твоих двух таблиц...
...
Рейтинг: 0 / 0
10.11.2005, 20:44:42
    #33372276
Владимор Конев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с подзапросом...
Хотя, конкретно в твоём случае, за глаза хватит и обычного INNER JOIN-а :)
...
Рейтинг: 0 / 0
10.11.2005, 20:51:46
    #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
11.11.2005, 12:01:09
    #33373155
Viktor Bartel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с подзапросом...
Пойдет,

Спасибо большое, все заработало.
...
Рейтинг: 0 / 0
11.11.2005, 12:17:16
    #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
11.11.2005, 17:59:48
    #33374407
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с подзапросом...
и куда ты собираешься это значение совать?
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
11.11.2005, 18:01:34
    #33374413
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с подзапросом...
в каждую строчку результата?
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
12.11.2005, 12:22:24
    #33374935
Viktor Bartel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с подзапросом...
Всетаки вы правы,

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


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