<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Array w warunku zapytania]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=234</link>
		<description><![CDATA[Najświeższe odpowiedzi w Array w warunku zapytania.]]></description>
		<lastBuildDate>Sun, 14 Jun 2009 20:05:51 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Array w warunku zapytania]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=988#p988</link>
			<description><![CDATA[[quote=rski]Ale i tak chyba najlepiej bedzie jak rozwalisz strukture bazy na trzy tabele.[/quote]

Masz rację, że tak będzie chyba najlepiej i najprościej. Całość i tak będzie "obsługiwana" przez skrypty php ale rozbicie na 3 tabele będzie  bardziej przejrzyste. Dodatkowe zapytanie i tak by musiało być niezależnie od tego czy są 2 tabele i tablica czy 3 tabele.
Dzięki za odpowiedź. :)]]></description>
			<author><![CDATA[dummy@example.com (fault)]]></author>
			<pubDate>Sun, 14 Jun 2009 20:05:51 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=988#p988</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Array w warunku zapytania]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=987#p987</link>
			<description><![CDATA[Takie korzystanie z tabel to 'strzal w kolano' :). Mysle ze najlepiej zrobisz jak napiszesz wlasna funckje ktora bedzie reazlizowala ci takie przeszukiwanie. Co prawda postgres ma operator '<@'  - 'zawiera sie w ' i mozesz sprobowac go wykorzystac. Ale i tak chyba najlepiej bedzie jak rozwalisz strukture bazy na trzy tabele.]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Sun, 14 Jun 2009 08:49:46 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=987#p987</guid>
		</item>
		<item>
			<title><![CDATA[Array w warunku zapytania]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=986#p986</link>
			<description><![CDATA[Witam !
Chcę stworzyć system wiadomości prywatnych ale z możliwością wysyłania do większej ilości osób a nie tylko jednej.
Mam taką tabelę :
                                     Table "public.wiadomosci"
   Column    |           Type           |                         Modifiers
-------------+--------------------------+-----------------------------------------------------------
 id_w        | bigint                   | not null default nextval('wiadomosci_id_w_seq'::regclass)
 w_od        | integer                  |
 w_do        | integer                  |
 adresaci    | integer[]                |
 czyja       | integer                  |
 data        | timestamp with time zone | default ('now'::text)::timestamp(6) with time zone
 przeczytana | boolean                  |
 pokaz       | boolean                  |
 wazna       | boolean                  |
 temat       | character varying(80)    |
 tresc       | text                     |
Indexes:
    "wiadomosci_pkey" PRIMARY KEY, btree (id_w)

W drugiej tabeli  mam użytkowników:

          Table "public.uzytkownicy"
  Column  |         Type          | Modifiers
----------+-----------------------+-----------
 id       | integer               |
 imie     | character varying(30) |
 nazwisko | character varying(45) |

Wydaję zapytanie:

select nazwisko,imie from uzytkownicy where id =any (select adresaci from wiadomosci where id_w=2);

Zwraca błąd :
ERROR:  operator does not exist: integer = integer[]
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.

Natomiast coś takiego działa poprawnie :
select nazwisko,imie from uzytkownicy where id =any (ARRAY[1,12]);

Oczywiście mogę "wyrzucić" kolumnę adresaci z tabeli wiadomości jako osobną tabelę adresaci z id_w i id_uzytkownika i wykonać zapytanie :
select nazwisko,imie from uzytkownicy where id  in (select id_uzytkownika from adresaci where id_w=2);

Ale może ktoś wie jakie należy wydać zapytanie aby dziłało tylko z dwoma tabelami.
Proszę o odpowiedź]]></description>
			<author><![CDATA[dummy@example.com (fault)]]></author>
			<pubDate>Sun, 14 Jun 2009 07:09:30 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=986#p986</guid>
		</item>
	</channel>
</rss>
