Si vous avez plusieurs colonnes dans un jeu de résultats portant le même nom, même mysql les renvoie toutes, mais elles porteront également le même nom dans le jeu de résultats, à moins que vous n'utilisiez un alias de champ. Création d'un sqlfiddle pour le prouver ici . Probablement, votre bibliothèque cliente ne peut pas faire la distinction entre les 2 colonnes. C'est un problème connu par exemple avec laravel.
mysql et mariadb vous permettent de préfixer les noms de champs avec des noms de table, mais le nom de la table n'est pas renvoyé dans le cadre du nom du champ. Cependant, la plupart des bibliothèques clientes sont capables de récupérer les métadonnées des colonnes dans un jeu de résultats renvoyé par mysql / mariadb, qui inclurait le nom de la table pour les colonnes non calculées. Voir par exemple mysqli_fetch_field_direct() fonction.
Vous pouvez utiliser le nom de table extrait des métadonnées pour déterminer quelle colonne d'ID appartient à quelle table.