j'ai table réservations qui a deux personnes- je veux revenir PERSON_1 comme une ligne, PERSON_2 comme une nouvelle ligne mais avec l'identifiant de la personne liée à la table des personnessql rejoindre sur deux champs dans une table
C'est pour autant que je suis arrivé, mais ne marche pas tirer dans les informations réservation
SELECT people.* FROM (
(select booking.person_1 as id from booking)
union ALL
(select booking.person_2 as id from booking)
) as peopleids
join people on people.id = peopleids.id;
Heres ma structure
CREATE TABLE IF NOT EXISTS `booking` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`slot` enum('morning_drive','afternoon_loop','return_drive') NOT NULL,
`type` enum('911','vintage_911') NOT NULL,
`car` int(11) NOT NULL,
`person_1` int(11) DEFAULT NULL,
`person_2` int(11) DEFAULT NULL,
`dated` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
CREATE TABLE IF NOT EXISTS `people` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(50) NOT NULL,
`last_name` varchar(50) NOT NULL,
`organisation` varchar(100) NOT NULL,
`event_date` date NOT NULL,
`wave` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
des idées sur la façon dont je pourrais obtenir un jeu de résultats person.first_name comme-, person.last_name, personne .org anisation, booking.dated, person.car, person.slot. im aux prises avec avoir deux champs et les avoir à les relier dans une liste
mise à jour pour toute personne intéressée par cela et se joindre à une 3ème table de
Heres ma requête finale avec php vars pour tirer dans mes certaines dates et machines à sous et adhèrent également à une troisième table
SELECT peopleids.id,
peopleids.car,
cars.nr,
p.first_name,
p.last_name,
p.organisation,
p.event_date,
p.wave
FROM (SELECT booking.car, booking.person_1 as id FROM booking WHERE booking.dated = '".$date."' AND booking.`slot` = '".$slot."'
union ALL SELECT booking.car, booking.person_2 as id FROM booking WHERE booking.dated = '".$date."' AND booking.`slot` = '".$slot."'
) as peopleids
LEFT JOIN people p ON p.id = peopleids.id LEFT JOIN cars on cars.id = peopleids.car;
rejoindre les gens sur people.id = peopleids.id? – StuartLC
cela fonctionne .. mais ne me permet pas de tirer les informations de réservation connexes, quelle est la meilleure façon? –
vous devez sélectionner le reste des champs dans vos deux syndicats (sélectionnez booking.person1, booking.someotherfield, booking.bookingdate) – StuartLC