Consejos para esta consulta en MySQL

Langel Seguir

Beta
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Desde
19 Abr 2013
Mensajes
140
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! :)
 

m16u31

Zeta
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
23 Sep 2018
Mensajes
1.686
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
 

hasdpk

Delta
Programador
Verificación en dos pasos desactivada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Abr 2013
Mensajes
602
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.
 

moiseseccam

Pi
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
5 Mar 2013
Mensajes
6.315
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
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba