Se hai più colonne in un set di risultati con lo stesso nome, anche mysql le restituisce tutte, ma avranno lo stesso nome anche nel set di risultati, a meno che tu non utilizzi un alias di campo. Creato un sqlfiddle per dimostrarlo qui . Probabilmente, la tua libreria client non è in grado di distinguere tra le 2 colonne. Questo è un problema noto, ad esempio con laravel.
Sia mysql che mariadb consentono di anteporre ai nomi dei campi i nomi delle tabelle, ma il nome della tabella non viene restituito come parte del nome del campo. Tuttavia, la maggior parte delle librerie client è in grado di recuperare i metadati per le colonne in un set di risultati restituito da mysql/mariadb, che includerebbe il nome della tabella per le colonne non calcolate. Vedi ad esempio mysqli_fetch_field_direct() funzione.
Puoi utilizzare il nome della tabella recuperato dai metadati per determinare quale colonna ID appartiene a quale tabella.