Page 1 of 1
User of Alias on Browse SQL
Posted: Thu May 16, 2024 10:55 am
by Giu
Hi again, I don't know if i'm doing correctly or it's a limitation.
I have this query. SELECT has 2 columns pointing to the same table, and need to resolve name of each user.
Code: Select all
SELECT
enfrentamientos.resultado,
enfrentamientos.fecha,
usuarionegras.sus_name as usernegras,
usuarioblancas.sus_name as usrblancas,
enfrentamientos.gana
FROM
enfrentamientos
inner join zzzzsys_user as usuarionegras on usuarionegras.zzzzsys_user_id = enfrentamientos.negras
inner join zzzzsys_user as usuarioblancas on usuarioblancas.zzzzsys_user_id = enfrentamientos.blancas
where '#USER_ID#' IN (enfrentamientos.negras, enfrentamientos.blancas);
I can solve it just saving the name of the user too in the record, and for my needs I think it's better, but would like to know if this is possible or not for possible future needs.
Regards.
Re: User of Alias on Browse SQL
Posted: Thu May 16, 2024 11:08 am
by Giu
I tried changing to this, adding each table before the field, without aliases
Code: Select all
SELECT
enfrentamientos.resultado,
enfrentamientos.fecha,
usuarionegras.sus_name,
usuarioblancas.sus_name,
enfrentamientos.gana
FROM
enfrentamientos
inner join zzzzsys_user as usuarionegras on usuarionegras.zzzzsys_user_id = enfrentamientos.negras
inner join zzzzsys_user as usuarioblancas on usuarioblancas.zzzzsys_user_id = enfrentamientos.blancas
where '#USER_ID#' IN (enfrentamientos.negras, enfrentamientos.blancas);
Shows one field of the the record but I get:
Code: Select all
[0] : ===PDO MESSAGE===
SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'sus_name'
===SQL===========
SELECT COUNT(*) FROM (SELECT enfrentamientos_id,enfrentamientos.fecha,usuarionegras.sus_name,usuarioblancas.sus_name,enfrentamientos.gana,enfrentamientos.resultado
FROM enfrentamientos inner join zzzzsys_user as usuarionegras on usuarionegras.zzzzsys_user_id = enfrentamientos.negras inner join zzzzsys_user as usuarioblancas on usuarioblancas.zzzzsys_user_id = enfrentamientos.blancas
where 'globeadmin' IN (enfrentamientos.negras, enfrentamientos.blancas)) nuTCount
===BACK TRACE====
C:\UniserverXV\www\dansuprivado\core\nuform.php - line 1275 (nuRunQuery)
C:\UniserverXV\www\dansuprivado\core\nuform.php - line 456 (nuBrowseRows)
C:\UniserverXV\www\dansuprivado\core\nuapi.php - line 87 (nuGetFormObject)
Re: User of Alias on Browse SQL
Posted: Thu May 16, 2024 11:09 am
by kev1n
nuBuilder's query parser is somewhat limited. A workaround is to use a subquery by encapsulating the SQL statement within a SELECT * FROM (...)
It is important that the primary key (e.g. enfrentamientos_id) is also selected in the subquery.
Code: Select all
SELECT * FROM (
SELECT
enfrentamientos.resultado,
enfrentamientos.fecha,
usuarionegras.sus_name as usernegras,
usuarioblancas.sus_name as usrblancas,
enfrentamientos.gana,
enfrentamientos_id
FROM
enfrentamientos
inner join zzzzsys_user as usuarionegras on usuarionegras.zzzzsys_user_id = enfrentamientos.negras
inner join zzzzsys_user as usuarioblancas on usuarioblancas.zzzzsys_user_id = enfrentamientos.blancas
where '#USER_ID#' IN (enfrentamientos.negras, enfrentamientos.blancas)
) T
Re: User of Alias on Browse SQL
Posted: Thu May 16, 2024 11:21 am
by Giu
Thanks, will take in consideration, meanwhile I created a view.