| 
			| 
					
						| 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_purposeFROM 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, activeFROM 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=- |  |  | 
	|  |