Reputation: 857
This is my query:
SELECT a.vardas, a.pavarde FROM `y6fdt_igym_abonementai` AS a
INNER JOIN
(
SELECT max(galiojaiki) gal, id, abonementas FROm y6fdt_igym_sutartys
) c
on c.abonementas = a.id
Why I see only a.vardas and a.pavarde columns as result. But not id, abonementas from subquery ?
Upvotes: 0
Views: 40
Reputation: 136
change
SELECT a.vardas, a.pavarde FROM `y6fdt_igym_abonementai` AS a
...
SELECT max(galiojaiki) gal, id, abonementas FROm y6fdt_igym_sutartys
to
SELECT a.vardas, a.pavarde FROM `y6fdt_igym_abonementai` a
...
SELECT max(c.galiojaiki) c.gal, c.id, c.abonementas FROm y6fdt_igym_sutartys c
Upvotes: 0
Reputation: 781984
If you want to see those columns, you have to add them to the main SELECT
clause.
SELECT a.vardas, a.pavarde, c.gal, c.id, c.abonementas
FROM `y6fdt_igym_abonementai` AS a
INNER JOIN
(
SELECT max(galiojaiki) gal, id, abonementas FROm y6fdt_igym_sutartys
) c
on c.abonementas = a.id
Note that the id
and abonementas
columns in the subquery will not be from row with max(galiojaiki)
. It will just take them from some random row in the table. If you want those specific values, you need to use:
SELECT a.vardas, a.pavarde, c.gal, c.id, c.abonementas
FROM `y6fdt_igym_abonementai` AS a
FROM y6fdt_igym_sutartys AS c ON c.abonementas = a.id
INNER JOIN
(
SELECT max(galiojaiki) AS maxgal
FROm y6fdt_igym_sutartys
) d on c.galiojaiki = d.maxgal
Upvotes: 5