SQL Anidando tablas




Para vincular una tabla de usuarios con una tabla de productos, se pueden utilizar claves foráneas. Puedes agregar una columna "idProduct" en la tabla de usuarios y establecer una clave foránea que haga referencia a la tabla de productos.


CREATE TABLE users ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, password TEXT NOT NULL, idProduct INTEGER NOT NULL, FOREIGN KEY(idProduct) REFERENCES products(id) )

En este ejemplo se crea una tabla "users" con columnas "id", "name", "password", "idProduct" y se establece una clave foránea "idProduct" que hace referencia a la tabla "products" y su columna "id". Luego se crea la tabla "products" con las columnas "id" y "product".


CREATE TABLE products ( id INTEGER PRIMARY KEY, product TEXT NOT NULL )


INSERT INTO users (name, password, idProduct) VALUES ('$name', '$password', $idProduct)


En este ejemplo, se utiliza la cláusula JOIN para unir la tabla de "users" con la tabla de "products" mediante la clave foránea "idProduct" en la tabla de "users" y "id" en la tabla "products". Luego se filtra utilizando la cláusula WHERE para seleccionar solo el usuario con id 1, y se selecciona solo la columna product de la tabla products.

De esta manera se puede obtener los productos relacionados con el usuario especificado en la cláusula where. Es importante siempre validar la existencia de los datos antes de realizar cualquier accion y utilizar sentencias preparadas para evitar inyecciones sql.


SELECT * FROM users JOIN products ON users.idProduct = products.id WHERE users.id = 1


De esta manera se puede obtener los productos relacionados con el usuario especificado en la cláusula where. Es importante siempre validar la existencia de los datos antes de realizar cualquier accion y utilizar sentencias preparadas para evitar inyecciones sql.





Comentarios