Sto tentando di visualizzare un elenco di record membro e ho alcune tabelle che sto usando per visualizzare ciò di cui ho bisogno.Sottoquery MySQL - Trova solo il primo record in un SINISTRO SINISTRA
Questa è la parte facile. La parte che ho bisogno di aiuto è con una tabella che ha molti record per ogni record membro: Cronologia login
Voglio visualizzare solo la prima riga per ogni record membro, che esiste nella tabella Cronologia login. In alternativa, potrei voler capovolgere il flop e visualizzare l'ultimo record nella tabella Cronologia login.
ecco cosa ho finora:
SELECT m.memberid, m.membername, m.gender, mp.phone
FROM tbl_members m,
tbl_members_phones mp,
tbl_members_addresses ma
WHERE m.defaultphoneid = mp.phoneid
AND m.defaultaddressid = ma.addressid
In modo che restituisce quello che ci si aspetta.
Le 2 colonne da tbl_members_login_history
Vorrei aggiungere al risultato restituito: mh. loggedtime
, mh. ipaddy
So che l'aggiunta del tbl_members_login_history
come LEFT JOIN sarebbe tornato duplicati, così sto pensando ci deve essere una necessità sottoquery qui, al fine di restituire solo il primo record per quel memberid
che esiste in tbl_members_login_history
.
Ciò di cui sono preoccupato è se non esiste alcun record nella tabella della cronologia, voglio comunque visualizzare le informazioni sui membri, ma lasciare le colonne della cronologia come NULL.
Questo sarebbe un incidente di subquery? e se sì, come si aggiunge quel tipo di LIMIT?
Per curiosità, sono necessari un telefono e l'indirizzo per un membro? In caso contrario, non penso che la tua query restituirà le altre informazioni sui membri se una di esse manca nel modo in cui è scritta. – Sam
In questo caso, sì. Ma hai ragione, il membro non verrebbe restituito nel risultato senza un record esistente. – coffeemonitor