J'essaye d'afficher des données de deux tables différentes commandées par l'heure où les données ont été créées.Dois-je utiliser JOIN ou UNION pour cette requête MYSQL?
Voici les 2 tables je tire des données à partir de:
active_projects
+------------+------------+---------+-------+-------------+
| project_id | ts_created | user_id | title | description |
+------------+------------+---------+-------+-------------+
aime
+---------+------------+------------+
| user_id | project_id | ts_created |
+---------+------------+------------+
Le résultat souhaité est l'ensemble des données extraites de ces colonnes affichées correctement, commandé par cette colonne:
+------------+
| ts_created |
+------------+
C'est la requête que je suis actuellement en utilisant:
$sql = "SELECT *
FROM (SELECT project_id AS ppid,
ts_created AS pts,
user_id AS puid,
title AS ptitle,
description AS pdesc
FROM active_projects
WHERE user_id = 12)
UNION
(SELECT id AS lid,
user_id AS luid,
project_id AS lpid,
ts_created AS lts
FROM likes
WHERE user_id = 12)";
Mais, cela ne fonctionne pas comme je veux. J'ai essayé de déboguer ce qui se passe mais maintenant je dis simplement que ce n'est pas en train de récupérer les données.
J'ai fait des recherches sur JOIN et UNION mais je ne suis pas sûr de savoir lequel je devrais utiliser pour cette requête. Toute aide est grandement appréciée.
EDIT: La requête s'affiche désormais correctement à l'aide de la réponse de @ Samuel. Mais, maintenant les résultats sont affichés 3 fois par ligne. Je fais cela à la fin de la requête:
$act = mysql_query($sql);
Puis, quand je fais écho les résultats que je suis en utilisant une boucle while aime ceci:
while ($t = mysql_fetch_row($act)) {
echo $t[1];
}
Toutes les idées pour lesquelles chaque rangée est affiché 3 fois?
Pouvez-vous nous indiquer votre résultat souhaité? Comment nous connaîtrons la raison de votre insatisfaction? – Yogus
Si vous voulez obtenir des mentions «J'aime» pour des projets actifs, utilisez JOIN. Si vous voulez obtenir des goûts ET des projets actifs, alors vous avez besoin d'UNION. Qu'est-ce que tu veux? – kuncajs
UNION: Les colonnes sélectionnées dans les positions correspondantes de chaque instruction SELECT doivent avoir le même type de données. – bitWorking