J'ai les deux tables suivantes:
=> une table n°1 : virtuemart_product_medias
CREATE TABLE IF NOT EXISTS `virtuemart_product_medias` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`virtuemart_product_id` int(1) unsigned NOT NULL DEFAULT '0',
`virtuemart_media_id` int(1) unsigned NOT NULL DEFAULT '0',
`ordering` int(2) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `i_virtuemart_product_id` (`virtuemart_product_id`,`virtuemart_media_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=611 ;
=> une table n°2: virtuemart_medias
CREATE TABLE IF NOT EXISTS `virtuemart_medias` (
`virtuemart_media_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`virtuemart_vendor_id` smallint(11) NOT NULL DEFAULT '1',
`file_title` char(126) NOT NULL DEFAULT '',
PRIMARY KEY (`virtuemart_media_id`),
KEY `i_virtuemart_vendor_id` (`virtuemart_vendor_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Additional Images and Files which are assigned to products' AUTO_INCREMENT=1888 ;
Au départ, j'ai une seule information: un `virtuemart_media_id` = 15 dont le champ est disponible dans les 2 tables.Je souhaite récupérer tous les enregistrements de la table n°2 qui ont un `virtuemart_product_id` identique à mon `virtuemart_media_id`= 15 dans la table n°1
Actuellement, je parviens au résultat en 2 requêtes:
1ère requête pour obtenir le `virtuemart_product_id` de mon `virtuemart_media_id`= 15:
SELECT `virtuemart_product_id` FROM `virtuemart_product_medias` AS vpm, `virtuemart_medias` AS vm WHERE vpm.`virtuemart_media_id` = vm.`virtuemart_media_id` AND `virtuemart_media_id` = 15
2ème requête pour obtenir tous les autres médias qui ont un `virtuemart_product_id` identique à celui obtenu dans la requête 1:
SELECT vm.* FROM `virtuemart_medias` AS vm, `virtuemart_product_medias` AS vpm WHERE vpm.`virtuemart_media_id` = vm.`virtuemart_media_id` AND vpm.`virtuemart_product_id` = [productid récupéré au dessus]
Je souhaite savoir s'il est possible et comment écrire une seule requête pour obtenir ce résultat.En vous remerciant pour vos réponses.