J'ai deux tables en relation avec les clés primaire et étrangère. Dans la première table J'ai une liste de serveurs avec des attributs (id, nom, ip, ...). Dans la deuxième table Je souhaite insérer dans les futures informations de mise à jour (id, id_serveur, last_update, next_update, ...).MySQL Sélectionnez une seule ligne de la deuxième table, pour chaque ID de la première table.
Maintenant, je veux montrer dans mon interface graphique le serveur-Attrinbutes de la première table et seulement la dernière entrée de la deuxième table pour chaque serveur avec est égal à server_id.
Tableau 1:
id
name
ip
description
.
.
Tableau 2:
id
server_id
last_update
next_update
.
.
Voici un court exemple, comment je l'ai déjà essayé:
select s.id, s.name, sp.last_update, sp.next_update
from server s
left join (select * from server_updates order by server_id desc) sp
on sp.server_id = s.id
je l'ai déjà essayé avec la déclaration LIMIT 1
select s.id, s.name, sp.last_update, sp.next_update
from server s
left join (select * from server_updates order by server_id desc limit 1) sp
on sp.server_id = s.id
J'ai aussi essayé d'utiliser DISTINCT
select DISTINCT s.id, s.name, sp.last_update, sp.next_update
from server s
left join (select * from server_updates order by server_id desc limit 1)
Mais j'ai toujours obtenu tous entrys de deuxième table
+------------+-----------------+---------------+------------+------------+
| Server0101 | Server0101_name | Server0101_ip | 2017-09-20 | 2017-10-20 |
| Server0101 | Server0101_name | Server0101_ip | 2017-10-20 | 2017-11-20 |
| Server0102 | Server0102_name | Server0102_ip | 2017-05-01 | 2017-06-01 |
Je veux juste une ligne de la deuxième table pour chaque ID de la première table.
Bien sûr, je peux implémenter ceci dans mon code JAVA, mais pouvez-vous me dire comment faire cela en MySQL.
https://dev.mysql.com/doc/refman/5.7/en/example-maximum-column-group-row.html – CBroe