Hello,
On Sun, 2017-05-28 at 20:03 +0300, Michelle Konzack wrote:
> Hello *,
>
> I try to get columns from my database with a singel SELECT, but I
> stuck.
>
> I have 3 tables like:
>
>
> 1) categories (serial,cat)
>
> 2) manufacturers (serial,m_name)
>
> 3) products (serial,category,manufacturer,p_name)
>
>
> where the "category" and "manufacturer"
> are numerical IDs from the two tables above.
>
> So I like to replace the numerical IDs with the appropriated values,
> mean
>
> SELECT * FROM products WHERE category IN
> (SELECT categories.cat FROM categories WHERE
> categories.serial==products.category);
>
> But I get:
>
> ERROR: operator does not exist: integer==integer
> LINE1: ...gories.cat FROM categories
> WHERE categories.serial==products.category);
> ^
> Hmm, "serial" is an "integer" and the "category" and "manufacturer"
> too.
>
> So whats wrong with it?
>
>
You only need a single equals sign in SQL.
SELECT * FROM products WHERE category IN
(SELECT categories.cat FROM categories WHERE
categories.serial = products.category);
Cheers,
Rob