0
votes

SQL Multi-Table requête

J'ai 3 tables associées et je voudrais montrer avec une requête SQL une table avec le "titulo" de la table "Recetas" avec la "catégorie" du tableau "Catégories" sélectionnée, une recette peut avoir Plus d'une catégorie pour cela, j'ai créé la table "Recetas-Catégories", j'ai essayé avec des sous-requêtes mais je ne l'obtiens pas, je suis un débutant dans SQL.

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";

DROP TABLE IF EXISTS `categorias`;
CREATE TABLE IF NOT EXISTS `categorias` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `categoria` varchar(255) COLLATE utf8_spanish2_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci;

INSERT INTO `categorias` (`id`, `categoria`) VALUES
(1, 'Sopas y cremas'),
(2, 'Salsas'),
(3, 'Potajes'),
(4, 'Ensaladas'),
(5, 'Pastas'),
(6, 'Arroces'),
(7, 'Legumbres'),
(8, 'Huevos'),
(9, 'Carnes'),
(10, 'Pescados'),
(11, 'Mariscos'),
(12, 'Cocteles y refrescos'),
(13, 'Postres y repostería'),
(14, 'Internacional'),
(15, 'Robot de cocina');
COMMIT;


2 commentaires

Structure de poste et exemple de données sous forme de texte, pas comme des images. Inclure également le résultat attendu de votre exemple de données.


Okey, merci =)


3 Réponses :


0
votes

Vous devez apprendre sur "SQL Joinages". Voici comment vous rejoignez ces 3 tables:

    select r.titulo
    from recetas r
    join recetas-categorias rc
        on rc.idreceta = r.idreceta
    join categorias c
        on c.id = rc.idcategoria
    where c.categoria = 'Internacional'


0 commentaires

0
votes

Je pense que de comprendre votre question, vous cherchez peut-être à être présenté à MySQL Tables jointures.

C'est une vaste catégorie, trop large pour une réponse ici, il est donc probablement préférable de vous diriger quelque part comme < un href = "http://www.mysqltutorial.org/mysql-join/" rel = "nfollow noreferrer"> http://www.mysqltorial.org/mysql-join/ pour apprendre ce qu'ils sont et Comment ils sont utilisés.

en termes de requête, l'amendement suivant: xxx

retourne xxx

... qui semble être ce que vous essayez d'atteindre?


0 commentaires

0
votes

Pour cette opération, utilisez rejoindre .

SELECT r.titulo 
FROM recetas r,
     recetas-categorias rc,
     categorias c
WHERE r.idreceta = rc.idreceta  
AND rc.idcategoria = c.id
AND c.categoria="Internacional"


0 commentaires