Salut,
Je recherche le moyen de selectionner (en php) le contenu de 2 tables en même temps (faire une sorte de tirage en vrac), sans tri.
J'ai essayé ça mais en vain :
$bdd->query("SELECT * FROM Table1, Table2");

J'ai essayé d'utiliser UNION/UNION ALL mais ça ne marche pas bien entendu ;)

Merci de m'éclairer :)

11 réponses


Keller
Réponse acceptée

Fais tout simplement un :

SELECT * FROM table1, table2 WHERE table1.id=table2.id

Bonsoir,

Hum je comprend pas trop pourquoi tu dis que le select sur deux tables ne fonctionne pas ... Pour que ceci fonctionne il faut que la construction de tes tables soit semblables.

Si tu veux de l'aide donne nous un exemple concret.

Cordialement

jojo36
Auteur

Salut, merci de ta réponse. Dans un cas concret : je veux tirer deux types de tables sur la page recherche.php : la table test et la table actualités. La configuration des deux tables est presque identique (la table test contient plus de champs mais les champs que je veux tirer sont identiques pour les deux).

jojo36
Auteur

Un petit peu de code :

<?php 
    $reponse = $bdd->query("SELECT * FROM Actualites");
    WHILE ($donnees = $reponse->fetch())
    {
?>
<?php echo $donnees'Titre']; ?>
<?php
    }
    $reponse->CloseCursor();
?>

Et donc je voudrais tirer le titre des actualités mais aussi des tests, de manière non triée/aléatoire (que les actualitées soient mélangées avec les tests)

jojo36
Auteur

C'est justement cette jointure que je n'arrive pas à faire ! :)

Fait nous un sqlfiddle avec des informations de tes tables. http://sqlfiddle.com/

Bonjour, tu peux faire un "UNION" :

$query = mysql_query("(SELECT id,type FROM Table1) UNION (SELECT id,type FROM Table2) ORDER BY RAND()");

J'espère avoir répondu à t'as question :)
NODsk

Pour récupérer toutes les colonnes de chaque table, il te faut le préciser pour chaque table, ce qui donne:

$bdd->query("SELECT actualites.*, tests.* FROM actualites, tests ORDER BY RAND()");

Bonjour, si les structures de tes tables sont legerement differentes, pourquoi ne pas mettre tes valeurs dans un tableau PHP et en faire ce que tu veux apres, tri ou melange ... ?

Voici un petit exemple

SELECT * FROM table1 INNER JOIN table2
SELECT * FROM table1 INNER JOIN table2 WHERE table1.id = table2.id
jojo36
Auteur

Ok merci tout le monde :)