OVH Cloud OVH Cloud

problème de nombre de colonne différente

1 réponse
Avatar
Marc Collin
salut

avec mysql avec cette requete

SELECT art_titre, art_texte, aut_courriel, aut_prenom, aut_nom
FROM article art
INNER JOIN auteur aut ON aut.aut_noauteur = art.aut_noauteur
INNER JOIN soussection ss ON ss.sou_nosoussection = art.sou_nosoussection
INNER JOIN section s ON s.sec_nosection = ss.sec_nosection
WHERE MATCH ( art_texte )
AGAINST ( 'delphi' )


UNION
SELECT liv_commentaire
FROM livre liv
INNER JOIN soussection ss ON ss.sou_nosoussection = liv.sou_nosoussection
INNER JOIN section s ON s.sec_nosection = ss.sec_nosection
WHERE MATCH ( liv_commentaire )
AGAINST ( 'delphi' )

UNION
SELECT com_description
FROM composant com
INNER JOIN soussection ss ON ss.sou_nosoussection = com.sou_nosoussection
INNER JOIN section s ON s.sec_nosection = ss.sec_nosection
WHERE MATCH ( com_description ) AGAINST ('delphi')

ou ça


SELECT art_titre, art_texte, aut_courriel, aut_prenom, aut_nom
FROM article art
INNER JOIN auteur aut ON aut.aut_noauteur = art.aut_noauteur
INNER JOIN soussection ss ON ss.sou_nosoussection = art.sou_nosoussection
INNER JOIN section s ON s.sec_nosection = ss.sec_nosection
WHERE MATCH ( art_texte )
AGAINST ( 'delphi' )


UNION
SELECT liv_commentaire
FROM livre liv
INNER JOIN soussection ss1 ON ss1.sou_nosoussection = liv.sou_nosoussection
INNER JOIN section s1 ON s1.sec_nosection = ss1.sec_nosection
WHERE MATCH ( liv_commentaire )
AGAINST ( 'delphi' )

UNION
SELECT com_description
FROM composant com
INNER JOIN soussection ss2 ON ss2.sou_nosoussection = com.sou_nosoussection
INNER JOIN section s2 ON s2.sec_nosection = ss2.sec_nosection
WHERE MATCH ( com_description ) AGAINST ('delphi')

j'obtient:

MySQL said:

#1222 - The used SELECT statements have a different number of columns



une idée?
--
La boîte à prog http://laboiteaprog.com

1 réponse

Avatar
Fred BROUARD - SQLpro
Tu ne peut faire une union qu'avec des SELECT qui ont les mes structures de colonnes..

A lire : http://sqlpro.developpez.com/SQL_AZ_4.html#ENSEMBLEunion

A +

Marc Collin a écrit:
salut

avec mysql avec cette requete

SELECT art_titre, art_texte, aut_courriel, aut_prenom, aut_nom
FROM article art
INNER JOIN auteur aut ON aut.aut_noauteur = art.aut_noauteur
INNER JOIN soussection ss ON ss.sou_nosoussection = art.sou_nosoussection
INNER JOIN section s ON s.sec_nosection = ss.sec_nosection
WHERE MATCH ( art_texte )
AGAINST ( 'delphi' )


UNION
SELECT liv_commentaire
FROM livre liv
INNER JOIN soussection ss ON ss.sou_nosoussection = liv.sou_nosoussection
INNER JOIN section s ON s.sec_nosection = ss.sec_nosection
WHERE MATCH ( liv_commentaire )
AGAINST ( 'delphi' )

UNION
SELECT com_description
FROM composant com
INNER JOIN soussection ss ON ss.sou_nosoussection = com.sou_nosoussection
INNER JOIN section s ON s.sec_nosection = ss.sec_nosection
WHERE MATCH ( com_description ) AGAINST ('delphi')

ou ça


SELECT art_titre, art_texte, aut_courriel, aut_prenom, aut_nom
FROM article art
INNER JOIN auteur aut ON aut.aut_noauteur = art.aut_noauteur
INNER JOIN soussection ss ON ss.sou_nosoussection = art.sou_nosoussection
INNER JOIN section s ON s.sec_nosection = ss.sec_nosection
WHERE MATCH ( art_texte )
AGAINST ( 'delphi' )


UNION
SELECT liv_commentaire
FROM livre liv
INNER JOIN soussection ss1 ON ss1.sou_nosoussection =
liv.sou_nosoussection
INNER JOIN section s1 ON s1.sec_nosection = ss1.sec_nosection
WHERE MATCH ( liv_commentaire )
AGAINST ( 'delphi' )

UNION
SELECT com_description
FROM composant com
INNER JOIN soussection ss2 ON ss2.sou_nosoussection =
com.sou_nosoussection
INNER JOIN section s2 ON s2.sec_nosection = ss2.sec_nosection
WHERE MATCH ( com_description ) AGAINST ('delphi')

j'obtient:

MySQL said:

#1222 - The used SELECT statements have a different number of columns



une idée?



--
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 *************************