Consejos para Consultas MySQL y Uso de INNER JOIN

  • Autor Autor Langel
  • Fecha de inicio Fecha de inicio
Langel

Langel

Beta
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
hola amigos 🙂 soy algo nuevo en esto de las consultas de base de datos y deseo porfavor unos consejillos, gracias:
les comento que tengo 2 tablas de bases de datos: "productos y info", cada una tiene un columna "id" con "auto increment" y la tabla info tiene una columna "productoid", bueno la cosa es que en productos tengo columnas de detalles básicos, y en info tengo columnas donde agrego mas detalles extras del producto, me recomendaron usar INNER JOIN para obtener todos los datos de ambas tablas y lo estoy haciendo de esta manera:

SELECT * FROM
productos AS p
INNER JOIN info AS i ON i.productoid = p.id

lo que deseo es saber sus opiniones y respuestas sobre estas preguntas:
1.- es necesario que en vez de poner asterisco (*) después del SELECT poner los nombres de las columnas de las cuales se desea obtener datos? y ¿por qué?
2.- es necesario ponerle un " ALTER TABLE info ADD INDEX (productoid) "? y ¿por qué?

agradezco mucho sus prontas respuestas, muchas gracias, salu2! 🙂
 
wow estas como muy perdido y te saltaste varios episodios/capítulos del tutorial de MySql

1 no es necesario, menos columnas tengas es mejor, la respuesta es mas rapida y aligeras la carga del servidor
2 es para optimizar las consultas dependiendo del campo se agregan los INDEX, normalmente se agregan a las FK's

al parecer estas comenzando a programar y de mala manera, te recomiendo que realices algún curso de los miles que hay en YT
 
Todo el mundo tiene un comienzo.

  1. Si no vas a usar TODOS los datos de las dos tablas es mejor nombrar las columnas, o sea, los datos que realmente vayas a usar. Recuperas menos información y la consulta es más rápida.
  2. Las columnas primary key ya tienen un índice, por lo que no es necesario que lo añadas.
Mi recomendación es que uses un LEFT JOIN, ya que si en la tabla "info" no tienes nada, al menos tendrás los vales a NULL.
 
Se supone que tu campo productoid de la tabla info es un FK de los id de la tabla productos. De ser ese caso no necesitas ponerle la sentencia 2.

SQL:
SELECT
    p.(campos que necesitas),
    i.(campos que necesitas)
FROM productos  p
LEFT JOIN info  i ON
    (i.productoid = p.id)

Puede que algún producto no tenga información adicional, por eso esta LEFT JOIN
 

Temas similares

D
Respuestas
6
Visitas
472
bwayne01
B
Atrás
Arriba