Quelle base de données utilisez-vous? Cela aurait fonctionné dans SQL Server. Cependant, notez que vous faites une jointure croisée de tous les records à chaque enregistrement ... habituellement vous ne souhaitez que faire correspondre des enregistrements par restriction d'une clé correspondante, par exemple:
select
*
from a
left join b on b.somekey = a.somekey
left join c on c.someotherkey = b.someotherkey
Dans SQL Server, vous pouvez simplement dire *, mais je suppose que dans votre moteur de base de données qui ne fonctionne pas, essayez de spécifier quelle table. Cela peut dans certains environnements nécessitent aliasing ainsi:
select
a.*,
b.*,
c.*
from tableA as a
left join tableB as b on b.somekey = a.somekey
left join tableC as c on c.someotherkey = b.someotherkey
En général, vous devriez voir les colonnes de la première table, puis les colonnes de la deuxième table, suivi par des colonnes de la troisième table pour une ligne donnée. Si vous vouliez obtenir toutes les colonnes de toutes les tables, mais séparément, il s'agirait de 3 sélections distinctes. Enfin, si toutes les 3 tables ont "armyno" alors je m'attendrais à ce qu'il lance une erreur de champ ambiguë. Dans ce cas, vous devez spécifier le champ "armyno" de la table sur lequel filtrer.
S'il vous plaît modifier votre question avec des exemples de données et ce que vous souhaitez que les résultats soient. –
Il est possible que votre conception de schéma puisse être améliorée. – Strawberry