J'ai deux tables, éléments et itemmeta. Les items ont un item_id qui le lie à itemmeta qui a itemmeta_id, item_id, meta_key et meta_value. Je l'ai fait donc si j'avais besoin d'ajouter un drapeau spécial ou une valeur à un élément, je n'avais pas besoin de continuer à changer la table des éléments.Comment puis-je récupérer des enregistrements d'une table et des enregistrements associés d'une autre table dans une requête?
Maintenant, je paie le prix de la flexibilité. Je veux savoir si je peux combiner une requête et un certain php dans une requête mieux conçue.
premier je fais quelque chose comme ceci:
SELECT * FROM items;
puis en boucle à travers ceux que je le fais pour chaque en php:
$sql = "SELECT * FROM itemmeta WHERE item_id='".$item['item_id']."' ";
$meta_result = mysql_query($sql, $conn) or die(mysql_error());
$item['meta'] = array();
while($meta=mysql_fetch_assoc($meta_result)) {
$item['meta'][$meta['meta_key']] = $meta['meta_value'];
}
Est-il possible de faire la deuxième partie en utilisant un sous-requête ou quelque chose comme ca? Je pense que la partie la plus difficile serait de garder le même résultat. ex: $ item ['meta'] ['my_key'] = 'valeur'. Je suppose que ce serait plus $ item ['meta'] [0] [0] = 'my_key' et $ item ['meta'] [0] [1] = 'valeur'.