2016-09-23 9 views
0

を失敗して、このクエリを実行するときにphpMyAdminのは#1064 error on line 12を与えている、私は2つのテーブルに関してleft outer join 2のテーブルを取得しようとしていますが、私は、このクエリを実行することができません:LEFT 2つのテーブルクエリの結合は

SELECT 
pt.id as planid, 
pt.trip_name, 
pt.description, 
cor.latitude, 
cor.longitude, 
bb.id as bookmarkid, 
bb.num_of_persons as persons 
FROM 
planned_trips as pt, 
coordinates as cor, 
LEFT JOIN Bookmarkedby as bb,Users as user 
ON 
user.id = 1 AND 
user.id = bb.user_id AND 
bb.plannedtrips_id = pt.id AND 
pt.coordinates_id = cor.id' 

私は1時間苦労しました、何が欠けていますか? 私のデータベーススキーマは以下のようになります。私は現在、ちょうど私のクエリを用意しております

schema1

私はcodeIgnitorにこのクエリを実行する必要があります。

+1

LEFT JOINの後に2つのテーブル名を付けることはできません。結合したいテーブルごとに別々のLEFT JOIN句が必要です。 – Barmar

+0

他のテーブルに対しても明示的な 'INNER JOIN'節を使用する必要があります。 – Barmar

+0

問題は、LEFT JOINのものでINNER JOINクエリをマージする場所です –

答えて

2

テーブルごとに別々のLEFT JOINが必要です。

SELECT 
    pt.id as planid, 
    pt.trip_name, 
    pt.description, 
    cor.latitude, 
    cor.longitude, 
    bb.id as bookmarkid, 
    bb.num_of_persons as persons 
FROM planned_trips as pt 
INNER JOIN coordinates as cor ON pt.coordinates_id = cor.id 
LEFT JOIN Bookmarkedby as bb ON bb.plannedtrips_id = pt.id 
LEFT JOIN Users as user ON user.id = bb.user_id AND user.id = 1 
+0

私たちは繰り返し左に参加することができます –

0

問題は行番号LEFT JOIN Bookmarkedby as bb,Users as userです。

FROM 
planned_trips as pt 
JOIN coordinates as cor ON pt.coordinates_id = cor.id 
LEFT JOIN Bookmarkedby as bb ON bb.plannedtrips_id = pt.id 
LEFT JOIN Users as user ON user.id = bb.user_id 
AND user.id = 1 
関連する問題