select nom from table1 where etat = 1 and
(id in (select id_table1 from table2 where id_livre = 1) and id in (select
id_table1 from table2 where id_livre = 2))
qui me renvoie l'id de la table1 dont les id_livres sont reliés, soit 1
mais en MySQL j'ai l'érreur #1064 (parse error) après le "...where id_livre
= 1) and "
Je dois pouvoir sélectionner l'id de la table1 dont les valeurs id_livres de
la table2 (liée à la table1) sont connues par avance, et que l'état soit à 1
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel Martin
Olivier wrote:
en MSSQL j'utilise la requete suivante :
select nom from table1 where etat = 1 and (id in (select id_table1 from table2 where id_livre = 1) and id in (select id_table1 from table2 where id_livre = 2))
qui me renvoie l'id de la table1 dont les id_livres sont reliés, soit 1
mais en MySQL j'ai l'érreur #1064 (parse error) après le "...where id_livre = 1) and "
pas de sous requêtes en mysql :-( . Prendre Postgres :-)
Olivier wrote:
en MSSQL j'utilise la requete suivante :
select nom from table1 where etat = 1 and
(id in (select id_table1 from table2 where id_livre = 1) and id in (select
id_table1 from table2 where id_livre = 2))
qui me renvoie l'id de la table1 dont les id_livres sont reliés, soit 1
mais en MySQL j'ai l'érreur #1064 (parse error) après le "...where id_livre
= 1) and "
pas de sous requêtes en mysql :-( . Prendre Postgres :-)
select nom from table1 where etat = 1 and (id in (select id_table1 from table2 where id_livre = 1) and id in (select id_table1 from table2 where id_livre = 2))
qui me renvoie l'id de la table1 dont les id_livres sont reliés, soit 1
mais en MySQL j'ai l'érreur #1064 (parse error) après le "...where id_livre = 1) and "
pas de sous requêtes en mysql :-( . Prendre Postgres :-)
Olivier
Salut,
Ah mince ... tu sais comment faire autrement ? je veux dire formuler la requete autrement ... j'ai essayé plein de combinaisons mais sans succès ...
Olivier
"Daniel Martin" a écrit dans le message de news:40bc2163$0$12750$
Olivier wrote:
> en MSSQL j'utilise la requete suivante : > > select nom from table1 where etat = 1 and > (id in (select id_table1 from table2 where id_livre = 1) and id in
(select
> id_table1 from table2 where id_livre = 2)) > > qui me renvoie l'id de la table1 dont les id_livres sont reliés, soit 1 > > mais en MySQL j'ai l'érreur #1064 (parse error) après le "...where
id_livre
> = 1) and " >
pas de sous requêtes en mysql :-( . Prendre Postgres :-)
Salut,
Ah mince ... tu sais comment faire autrement ? je veux dire formuler la
requete autrement ... j'ai essayé plein de combinaisons mais sans succès ...
Olivier
"Daniel Martin" <dmartin5986@hotmail.com> a écrit dans le message de
news:40bc2163$0$12750$636a15ce@news.free.fr...
Olivier wrote:
> en MSSQL j'utilise la requete suivante :
>
> select nom from table1 where etat = 1 and
> (id in (select id_table1 from table2 where id_livre = 1) and id in
(select
> id_table1 from table2 where id_livre = 2))
>
> qui me renvoie l'id de la table1 dont les id_livres sont reliés, soit 1
>
> mais en MySQL j'ai l'érreur #1064 (parse error) après le "...where
id_livre
> = 1) and "
>
pas de sous requêtes en mysql :-( . Prendre Postgres :-)
Ah mince ... tu sais comment faire autrement ? je veux dire formuler la requete autrement ... j'ai essayé plein de combinaisons mais sans succès ...
Olivier
"Daniel Martin" a écrit dans le message de news:40bc2163$0$12750$
Olivier wrote:
> en MSSQL j'utilise la requete suivante : > > select nom from table1 where etat = 1 and > (id in (select id_table1 from table2 where id_livre = 1) and id in
(select
> id_table1 from table2 where id_livre = 2)) > > qui me renvoie l'id de la table1 dont les id_livres sont reliés, soit 1 > > mais en MySQL j'ai l'érreur #1064 (parse error) après le "...where
id_livre
> = 1) and " >
pas de sous requêtes en mysql :-( . Prendre Postgres :-)
Fred BROUARD - SQLpro
Ces sous requêtes sont strcitement inutiles et pénalisantes, même pour MS SQL Server.
Uen simple application des bases de la jointure suffit :
select T1.nom from table1 T1 INNER JOIN table2 T2 ON T1.id = T2.id_table1 INNER JOIN table2 T3 ON T1.id = T3.id_table1 where T1.etat = 1 and T2.id_livre = 1 and T3.id_livre = 2
A +
-- Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Olivier a écrit:
Bonjour,
J'ai un soucy pour realiser un select sur des tables liées :
select nom from table1 where etat = 1 and (id in (select id_table1 from table2 where id_livre = 1) and id in (select id_table1 from table2 where id_livre = 2))
qui me renvoie l'id de la table1 dont les id_livres sont reliés, soit 1
mais en MySQL j'ai l'érreur #1064 (parse error) après le "...where id_livre = 1) and "
Je dois pouvoir sélectionner l'id de la table1 dont les valeurs id_livres de la table2 (liée à la table1) sont connues par avance, et que l'état soit à 1
Comment règler le probleme ?
Merci
Olivier
Ces sous requêtes sont strcitement inutiles et pénalisantes, même pour MS SQL Server.
Uen simple application des bases de la jointure suffit :
select T1.nom
from table1 T1
INNER JOIN table2 T2
ON T1.id = T2.id_table1
INNER JOIN table2 T3
ON T1.id = T3.id_table1
where T1.etat = 1
and T2.id_livre = 1
and T3.id_livre = 2
A +
--
Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Olivier a écrit:
Bonjour,
J'ai un soucy pour realiser un select sur des tables liées :
select nom from table1 where etat = 1 and
(id in (select id_table1 from table2 where id_livre = 1) and id in (select
id_table1 from table2 where id_livre = 2))
qui me renvoie l'id de la table1 dont les id_livres sont reliés, soit 1
mais en MySQL j'ai l'érreur #1064 (parse error) après le "...where id_livre
= 1) and "
Je dois pouvoir sélectionner l'id de la table1 dont les valeurs id_livres de
la table2 (liée à la table1) sont connues par avance, et que l'état soit à 1
Ces sous requêtes sont strcitement inutiles et pénalisantes, même pour MS SQL Server.
Uen simple application des bases de la jointure suffit :
select T1.nom from table1 T1 INNER JOIN table2 T2 ON T1.id = T2.id_table1 INNER JOIN table2 T3 ON T1.id = T3.id_table1 where T1.etat = 1 and T2.id_livre = 1 and T3.id_livre = 2
A +
-- Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Olivier a écrit:
Bonjour,
J'ai un soucy pour realiser un select sur des tables liées :
select nom from table1 where etat = 1 and (id in (select id_table1 from table2 where id_livre = 1) and id in (select id_table1 from table2 where id_livre = 2))
qui me renvoie l'id de la table1 dont les id_livres sont reliés, soit 1
mais en MySQL j'ai l'érreur #1064 (parse error) après le "...where id_livre = 1) and "
Je dois pouvoir sélectionner l'id de la table1 dont les valeurs id_livres de la table2 (liée à la table1) sont connues par avance, et que l'état soit à 1
Comment règler le probleme ?
Merci
Olivier
Olivier
Bonsoir,
ah ... ok merci pour ton modèle ;-)
Olivier
"Fred BROUARD - SQLpro" a écrit dans le message de news:40bc7ba1$0$305$
Ces sous requêtes sont strcitement inutiles et pénalisantes, même pour MS
SQL Server.
Uen simple application des bases de la jointure suffit :
select T1.nom from table1 T1 INNER JOIN table2 T2 ON T1.id = T2.id_table1 INNER JOIN table2 T3 ON T1.id = T3.id_table1 where T1.etat = 1 and T2.id_livre = 1 and T3.id_livre = 2
A +
-- Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Olivier a écrit: > Bonjour, > > J'ai un soucy pour realiser un select sur des tables liées : > > les tables : > > table1 > id nom etat > 1 nom1 1 > 2 nom2 1 > > table2 > id_table1 id_livre > 1 1 > 1 2 > 2 2 > 2 3 > 3 1 > 3 16 > 3 42 > 2 3 > 4 2 > 4 3 > > > en MSSQL j'utilise la requete suivante : > > select nom from table1 where etat = 1 and > (id in (select id_table1 from table2 where id_livre = 1) and id in
(select
> id_table1 from table2 where id_livre = 2)) > > qui me renvoie l'id de la table1 dont les id_livres sont reliés, soit 1 > > mais en MySQL j'ai l'érreur #1064 (parse error) après le "...where
id_livre
> = 1) and " > > Je dois pouvoir sélectionner l'id de la table1 dont les valeurs
id_livres de
> la table2 (liée à la table1) sont connues par avance, et que l'état soit
à 1
> > Comment règler le probleme ? > > Merci > > Olivier > > > >
Bonsoir,
ah ... ok merci pour ton modèle ;-)
Olivier
"Fred BROUARD - SQLpro" <brouardf@club-internet.fr> a écrit dans le message
de news:40bc7ba1$0$305$7a628cd7@news.club-internet.fr...
Ces sous requêtes sont strcitement inutiles et pénalisantes, même pour MS
SQL Server.
Uen simple application des bases de la jointure suffit :
select T1.nom
from table1 T1
INNER JOIN table2 T2
ON T1.id = T2.id_table1
INNER JOIN table2 T3
ON T1.id = T3.id_table1
where T1.etat = 1
and T2.id_livre = 1
and T3.id_livre = 2
A +
--
Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Olivier a écrit:
> Bonjour,
>
> J'ai un soucy pour realiser un select sur des tables liées :
>
> les tables :
>
> table1
> id nom etat
> 1 nom1 1
> 2 nom2 1
>
> table2
> id_table1 id_livre
> 1 1
> 1 2
> 2 2
> 2 3
> 3 1
> 3 16
> 3 42
> 2 3
> 4 2
> 4 3
>
>
> en MSSQL j'utilise la requete suivante :
>
> select nom from table1 where etat = 1 and
> (id in (select id_table1 from table2 where id_livre = 1) and id in
(select
> id_table1 from table2 where id_livre = 2))
>
> qui me renvoie l'id de la table1 dont les id_livres sont reliés, soit 1
>
> mais en MySQL j'ai l'érreur #1064 (parse error) après le "...where
id_livre
> = 1) and "
>
> Je dois pouvoir sélectionner l'id de la table1 dont les valeurs
id_livres de
> la table2 (liée à la table1) sont connues par avance, et que l'état soit
à 1
>
> Comment règler le probleme ?
>
> Merci
>
> Olivier
>
>
>
>
"Fred BROUARD - SQLpro" a écrit dans le message de news:40bc7ba1$0$305$
Ces sous requêtes sont strcitement inutiles et pénalisantes, même pour MS
SQL Server.
Uen simple application des bases de la jointure suffit :
select T1.nom from table1 T1 INNER JOIN table2 T2 ON T1.id = T2.id_table1 INNER JOIN table2 T3 ON T1.id = T3.id_table1 where T1.etat = 1 and T2.id_livre = 1 and T3.id_livre = 2
A +
-- Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Olivier a écrit: > Bonjour, > > J'ai un soucy pour realiser un select sur des tables liées : > > les tables : > > table1 > id nom etat > 1 nom1 1 > 2 nom2 1 > > table2 > id_table1 id_livre > 1 1 > 1 2 > 2 2 > 2 3 > 3 1 > 3 16 > 3 42 > 2 3 > 4 2 > 4 3 > > > en MSSQL j'utilise la requete suivante : > > select nom from table1 where etat = 1 and > (id in (select id_table1 from table2 where id_livre = 1) and id in
(select
> id_table1 from table2 where id_livre = 2)) > > qui me renvoie l'id de la table1 dont les id_livres sont reliés, soit 1 > > mais en MySQL j'ai l'érreur #1064 (parse error) après le "...where
id_livre
> = 1) and " > > Je dois pouvoir sélectionner l'id de la table1 dont les valeurs
id_livres de
> la table2 (liée à la table1) sont connues par avance, et que l'état soit
à 1
> > Comment règler le probleme ? > > Merci > > Olivier > > > >
bruno modulix
Daniel Martin a écrit :
Olivier wrote:
en MSSQL j'utilise la requete suivante :
select nom from table1 where etat = 1 and (id in (select id_table1 from table2 where id_livre = 1) and id in (select id_table1 from table2 where id_livre = 2))
qui me renvoie l'id de la table1 dont les id_livres sont reliés, soit 1
mais en MySQL j'ai l'érreur #1064 (parse error) après le "...where id_livre = 1) and "
pas de sous requêtes en mysql :-( . Prendre Postgres :-)
Si, mais à partir de la version 4.x (ceci étant, je ne peux qu'être d'accord avec la seconde partie de la réponse !-)
Bruno
Daniel Martin a écrit :
Olivier wrote:
en MSSQL j'utilise la requete suivante :
select nom from table1 where etat = 1 and
(id in (select id_table1 from table2 where id_livre = 1) and id in
(select
id_table1 from table2 where id_livre = 2))
qui me renvoie l'id de la table1 dont les id_livres sont reliés, soit 1
mais en MySQL j'ai l'érreur #1064 (parse error) après le "...where
id_livre
= 1) and "
pas de sous requêtes en mysql :-( . Prendre Postgres :-)
Si, mais à partir de la version 4.x
(ceci étant, je ne peux qu'être d'accord avec la seconde partie de la
réponse !-)
select nom from table1 where etat = 1 and (id in (select id_table1 from table2 where id_livre = 1) and id in (select id_table1 from table2 where id_livre = 2))
qui me renvoie l'id de la table1 dont les id_livres sont reliés, soit 1
mais en MySQL j'ai l'érreur #1064 (parse error) après le "...where id_livre = 1) and "
pas de sous requêtes en mysql :-( . Prendre Postgres :-)
Si, mais à partir de la version 4.x (ceci étant, je ne peux qu'être d'accord avec la seconde partie de la réponse !-)