Arinyshka
Белый клоун, бедный мученик...
Постоялец
Offline
Пол:
|
|
« : 11-04-2008 08:56 » |
|
SQL. Есть таблица ImageFor , в которой лежат картинки. 2 поля - id_image (счетчик, примари ключ) и собственно image_Purpose - картинка. И вторая таблица Purpose , в которой лежат текстовые записи. Поля: Id_purpose (счетчик, примари ключ)), Purpose, Id_Image . В последнем лежат id используемой картинки. Мне нужно выбрать картинки, но в порядке Id_purpose ... Как?
|
|
|
Записан
|
Непонятная свобода обручем сдавила грудь...
|
|
|
zubr
Гость
|
|
« Ответ #1 : 11-04-2008 09:11 » |
|
SELECT (SELECT image_Purpose FROM ImageFor WHERE id_image=Purpose.Id_Image) AS Image FROM Purpose
|
|
|
Записан
|
|
|
|
McZim
|
|
« Ответ #2 : 11-04-2008 09:17 » |
|
SELECT image_purpose FROM ImageFor INNER JOIN Purpose ON Purpose.id_image=ImageFor.id_image WHERE IN(SELECT id_purpose FROM Purpose);
|
|
« Последнее редактирование: 11-04-2008 09:19 от McZim »
|
Записан
|
The CBO without stats is like a morning without coffee. (c) T.Kyte.
|
|
|
Arinyshka
Белый клоун, бедный мученик...
Постоялец
Offline
Пол:
|
|
« Ответ #3 : 11-04-2008 09:24 » |
|
Работает!!! ) теперь осталось понять, как Спасибо
|
|
|
Записан
|
Непонятная свобода обручем сдавила грудь...
|
|
|
McZim
|
|
« Ответ #4 : 11-04-2008 09:25 » |
|
Arinyshka, чей вариант работает?
|
|
|
Записан
|
The CBO without stats is like a morning without coffee. (c) T.Kyte.
|
|
|
Arinyshka
Белый клоун, бедный мученик...
Постоялец
Offline
Пол:
|
|
« Ответ #5 : 11-04-2008 09:36 » |
|
первый. Во втором жалуется на Incorrect syntax near the keyword 'IN'.
|
|
|
Записан
|
Непонятная свобода обручем сдавила грудь...
|
|
|
Arinyshka
Белый клоун, бедный мученик...
Постоялец
Offline
Пол:
|
|
« Ответ #6 : 11-04-2008 10:07 » |
|
но в первом не позволяет выбрать несколько полей... а нужно еще 2 из таблички рисунков - id рисунка и active, оба integer... второй никак не могу уговорить работать Помогите добить...
|
|
|
Записан
|
Непонятная свобода обручем сдавила грудь...
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #7 : 11-04-2008 10:07 » |
|
SELECT i.image_purpose FROM imagefor i, purpose p WHERE i.image_id = p.image_id ORDER BY p.id_purpose
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #8 : 11-04-2008 10:10 » |
|
попробуй из 2-ой преобразовать: SELECT image_purpose FROM ImageFor INNER JOIN Purpose ON Purpose.id_image=ImageFor.id_image WHERE image_purpose.id_image IN(SELECT id_purpose FROM Purpose); или просто: SELECT image_purpose FROM ImageFor INNER JOIN Purpose ON Purpose.id_image=ImageFor.id_image
|
|
« Последнее редактирование: 11-04-2008 11:49 от PooH »
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #9 : 11-04-2008 10:11 » |
|
но в первом не позволяет выбрать несколько полей... это почему же?
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
Arinyshka
Белый клоун, бедный мученик...
Постоялец
Offline
Пол:
|
|
« Ответ #10 : 11-04-2008 11:10 » |
|
SELECT ImageFor.Image_Purpose, ImageFor.id_Image, ImageFor.active FROM ImageFor INNER JOIN Purpose ON Purpose.id_image=ImageFor.id_image Заработало вот в таком виде Так я еще и понимаю, как и почему оно работает! Женское счастье... Спасибо
|
|
|
Записан
|
Непонятная свобода обручем сдавила грудь...
|
|
|
McZim
|
|
« Ответ #11 : 11-04-2008 11:13 » |
|
Arinyshka, вы же говорили что нужна выборка по id_purpose. Еще рекомендую делать проверку на существование пустого поля.
|
|
« Последнее редактирование: 11-04-2008 11:16 от McZim »
|
Записан
|
The CBO without stats is like a morning without coffee. (c) T.Kyte.
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #12 : 11-04-2008 11:46 » |
|
тут еще от СУБД и диалекта SQL зависит...
-- P.S.: с таким условием "image_purpose.id_image IN(SELECT id_purpose FROM Purpose);" я прогнал... каюсь. =)
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
McZim
|
|
« Ответ #13 : 11-04-2008 11:48 » |
|
PooH, ага а то я уже перерыл источники разные и никак не могу врубится в синтаксис.
|
|
|
Записан
|
The CBO without stats is like a morning without coffee. (c) T.Kyte.
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #14 : 11-04-2008 11:56 » |
|
А я не сталнивался с такой конструкцией : "WHERE IN(SELECT"
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
McZim
|
|
« Ответ #15 : 11-04-2008 12:06 » |
|
PooH, не ты правильно написал, между WHERE и IN что то должно быть, но меня смутило не это, а вот это "image_purpose.id_image"
|
|
|
Записан
|
The CBO without stats is like a morning without coffee. (c) T.Kyte.
|
|
|
Arinyshka
Белый клоун, бедный мученик...
Постоялец
Offline
Пол:
|
|
« Ответ #16 : 11-04-2008 12:13 » |
|
Arinyshka, вы же говорили что нужна выборка по id_purpose. Еще рекомендую делать проверку на существование пустого поля.
Так оно и дало такой результат картинки идут ровно в том порядке, как в Purpose... и только те, которые там встречаются Теперь пытаюсь убедить Дельфу, что именно это нам было нужно image_purpose.id_image - меня это не только смутило, но и заставило почитать С Where in я так и не поняла... Ладно, постепенно проникнусь А проверку на пустое поле - это как?
|
|
|
Записан
|
Непонятная свобода обручем сдавила грудь...
|
|
|
McZim
|
|
« Ответ #17 : 11-04-2008 12:20 » |
|
SELECT image_purpose, id_Image, active FROM ImageFor INNER JOIN Purpose ON Purpose.id_image=ImageFor.id_image WHERE ImageFor.id_image IS NOT NULL AND Purpose.id_image IS NOT NULL
|
|
|
Записан
|
The CBO without stats is like a morning without coffee. (c) T.Kyte.
|
|
|
Arinyshka
Белый клоун, бедный мученик...
Постоялец
Offline
Пол:
|
|
« Ответ #18 : 11-04-2008 12:24 » |
|
Добавила ) Хорошо с вами...
|
|
|
Записан
|
Непонятная свобода обручем сдавила грудь...
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #19 : 11-04-2008 12:47 » |
|
Хорошо что все закончилось хорошо =) я ошибся именно в столбце... --- необходимость "ImageFor.id_image IS NOT NULL AND Purpose.id_image IS NOT NULL" зависит от СУБД... в некоторых это условие можно вообще не писать в некоторых достаточно только Purpose.id_image IS NOT NULL
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
|