2017-09-05 25 views
1

私はほぼ同じ列を持つ2つのテーブル - ビデオのリストとギャラリーのリストを持っています。私はメンバーテーブルにこれを残しておきたいので、メンバーIDからメンバー名を得ることができます。私が終わるのは、日付欄で注文されたビデオとギャラリーのリストです。私はそれを別々に行う方法を知っていますが、それを組み合わせて動作させることはできません。ここで別のクエリです:2つのテーブルから1つ左のテーブルからMySQLを

//Video Query 
SELECT videos.vid, videos.mid, videos.source, videos.category, videos.title, videos.description, videos.date_added, videos.status, members.name FROM videos LEFT JOIN members ON videos.mid=members.mid WHERE videos.status = 'published' ORDER BY date_added 

//Gallery Query  
SELECT galleries.vid, galleries.mid, galleries.directory, galleries.category, galleries.title, galleries.description, galleries.date_added, galleries.status, members.name FROM videos LEFT JOIN members ON videos.mid=members.mid WHERE galleries.status = 'published' ORDER BY date_added 

しかし、私はそれが左で動作するように得ることができない2つのテーブルを結合します。両方のテーブルは、左の結合には同じ列を使用し、ソートには同じ列を使用します。 1つのクエリを実行することはできますか、または両方をクエリして何らかのマージを行う必要がありますか?

- Video A by John 
- Gallery A by John 
- Video B by John 
- Video C by Mary 

その他、各種

ありがとう:

最終的な結果は次のようなものになるだろう!

答えて

0

クエリの両方を組み合わせて、私はこれが役に立てば幸い

SELECT 
    videos.vid, 
    videos.mid, 
    videos.source, 
    videos.category, 
    videos.title, 
    videos.description, 
    videos.date_added, 
    videos.status, 
    galleries.vid, 
    galleries.mid, 
    galleries.directory, 
    galleries.category, 
    galleries.title, 
    galleries.description, 
    galleries.date_added, 
    galleries.status, 
    members.name 
FROM 
    videos 
    LEFT JOIN members 
    ON videos.mid = members.mid members.name 
FROM 
    videos 
    LEFT JOIN members 
    ON videos.mid = members.mid 
    AND videos.status = 'published' 
    LEFT JOIN galleries 
    ON galleries.mid = members.mid 
AND galleries.status = 'published' 
ORDER BY galleries.date_added,videos.date_added 

ような何かを書くことができます。

+0

申し訳ありません。最初にブロックから最初に削除されたエラーが返されましたが、ギャラリー行がビデオ行にマージされて返されました。これは私が望むものではありません。 – Kat

関連する問題