J'ai quatre tables, avec leurs "arguments" respectifs J'ai besoin de former le tableau suivant, P> SELECT person_ID, movie_ID
FROM `Movie` A JOIN `Ticket` B ON A.movie_ID = B.movie_ID
SELECT person_DNI, B.person_ID, A.segment
FROM Date A
LEFT JOIN Person B ON A.person_dni=B.person_DNI
3 Réponses :
SELECT D.person_DNI, D.Segment, P.person_ID, T.movie_ID FROM Date D JOIN Person P ON D.person_DNI = P.person_DNI JOIN Ticket T ON P.person_ID = T.person_ID -- Because you dont use anything from Movie like Movie.name -- you dont really need join Movie to get movie_id JOIN Movie M ON T.movie_ID = M.movie_ID
Comme vous n'avez pas détaillé la signification de chaque colonne, ma réponse effectue des jointures intérieures sans attention à la commande.
De préférence, vous pouvez rejoindre plusieurs tables dans une seule requête: P>
SELECT t1.person_ID, person_DNI, movie_ID, Segment
FROM (
SELECT person_ID, movie_ID
FROM `Movie` A JOIN `Ticket` B ON A.movie_ID = B.movie_ID
) t1
JOIN (
SELECT person_DNI, B.person_ID, A.segment
FROM Date A
LEFT JOIN Person B ON A.person_dni = B.person_DNI
) t2
ON t1.person_ID = t2.person_ID
Vous pouvez utiliser une jointure naturelle dans mysql: Pour plus d'informations, consultez ce lien: https://www.w3resource.com/mysql/advance-query-in-mysql/mysql-natural-join.php a> p> J'espère que cela aide. p> p>
Qu'est-ce que
person_dni code>? et quelle est la date code> la table? Vous devez expliquer la cardinalité de la table pour voir quel ordre nous avons fait les jointures. Est une date code> code> avoir plusieurs personnes ou une personne plusieurs dateset voir: Pourquoi devrais-je fournir un MCRE pour ce qui me semble être une requête SQL très simple?