一つのテーブルに二つのフィールドに参加しますが、人のIDを持つ人たちのテーブルに関連します限り私が得た、しかしとして情報SQLはこれがある</p> <p>を新しい行としてPERSON_2、私は行としてPERSON_1返すようにしたい2人 - を持っているの予約テーブルを持っている
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に私の構造
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 ;
私はlike- person.first_name、person.last_name、人物設定の結果を得ることができる方法上の任意のアイデアをご予約に引くdoes notの.orgアニメーション、予約書、人物、車、人物。イム二つのフィールドを持ち、1つのリストに、このに興味がある人のための
更新し、それらを関連付けるためにそれらを持って、私の特定の日付に
がHERESにPHPと私の最後のクエリが引っ張ってvarsの第三のテーブルを結合して苦労また、スロットと第3のテーブルを結合
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;
がpeople.id = peopleids.id上の人々に参加するのに役立ちますか? – StuartLC
この作品..しかし、私は関連する予約情報をプルすることができません、何が最善の方法? –
あなたはあなたの組合の両方の残りのフィールドを選択する必要があります(booking.person1、booking.someotherfield、booking.bookingdateを選択してください) – StuartLC