Suggerimento necessaria per ottimizzare una query MySQL
-
09-10-2019 - |
Domanda
sto usando query con parametri con PHP ho le seguenti due query:
SELECT username,question_text
FROM questions,users
WHERE questions.question_id = 4 AND questions.user_id = users.user_id
e
SELECT username, post_text
FROM posts,users WHERE posts.question_id = 4
AND posts.user_id = users.user_id ORDER BY posts.post_id ASC
In breve, le domande sono in discussione nella tabella "messaggi" e sono in fase di riferimento per la loro question_id.
Ho qualche codice ridondante nel mio codice PHP perché io non ne so abbastanza mysql per interrogare il database una volta per ottenere i risultati che ho bisogno di queste due query.
E 'il modo in cui lo sto facendo bene e trattare con le parti ridondanti del mio codice PHP o c'è un modo migliore di realizzare questo?
Soluzione
uso unirsi al posto di colonne corrispondenti in cui la clausola
SELECT username,question_text
FROM questions INNER JOIN users on questions.user_id = users.user_id
WHERE questions.question_id = 4
E
SELECT username, post_text
FROM posts INNER JOIN users on posts.user_id = users.user_id
WHERE posts.question_id = 4
ORDER BY posts.post_id ASC
Altri suggerimenti
2 domande è del tutto bene lì, combinando in uscita da diverse tabelle non è un'idea molto pulita.
Hai solo bisogno di controllare se si dispone di tutti gli indici combinati su tutti i campi si utilizzano in WHERE, e sarà molto veloce.