0

http://i.stack.imgur.com/mbUTI.jpg

1 つのテーブルに複数のテーブルのデータがある場合に、1 つのクエリで複数選択を実行したいと考えています。それを単一の出力に結合するための4つのテーブルがあります。これが私のテーブルの画像です。

私はすべてを選択したいが、他のすべてのテーブルの名前を持つメインテーブルだけを他のテーブルから他のデータは望まない

以下を試しましたが、うまくいきません。

    select * from project_content 
    left Join project_master on project_master.id =  project_content.p_id
    left Join project_content_menu on project_content_menu.type_id =  project_content.p_c_id 
    left Join project_menu_master on project_menu_master.id =  project_content.m_id 


    select * from project_content 
    left Join project_master on project_master.id =  project_content.p_id
    left Join project_content_menu on project_content_menu.type_id =  project_content.p_c_id 
    left Join project_menu_master on project_menu_master.id =  project_content.m_id 


    select distinct(*) from project_content 
    left OUTER Join   project_master on project_master.id =  project_content.p_id
    left OUTER Join   project_content_menu on project_content_menu.type_id =  project_content.p_c_id 
    left OUTER Join  project_menu_master on project_menu_master.id =  project_content.m_id 

    select * from project_content ,project_master,project_content_menu,project_menu_master
    where project_master.id =  project_content.p_id and project_content_menu.type_id =  project_content.p_c_id and project_menu_master.id =  project_content.m_id 

    select pc.id as id , pm.name as pname , pmm.name as menuname , pcm.name as contentname , pc.name as name
    from 
    project_content as pc,
    project_master as pm,
    project_content_menu as pcm,
    project_menu_master as pmm
    where 
    pm.id = pc.p_id 
    and 
    pcm.type_id = pc.m_id
    and 
    pmm.id = pc.p_c_id
4

3 に答える 3

0

私があなたを正しく理解していなければ、メインテーブルからのデータだけが必要ですが、他のテーブルからの外部キーの代わりに名前が必要ですか?もしそうなら、そして:

SELECT pc.id, pm.name, pcm.name, pmm.name, pc.name, pc.desc, pc.thumb, pc.src, pc.status
FROM project_content AS pc
LEFT JOIN project_master AS pm ON pm.id =  pc.p_id
LEFT JOIN project_content_menu AS pcm ON pcm.type_id = pc.p_c_id 
LEFT JOIN project_menu_master AS pmm ON pmm.id = pc.m_id 
于 2012-06-04T13:08:47.877 に答える
0

私は SQL の専門家ではありませんが、UNION演算子を使用してみてください。このような:

select names
from table1
where lastname like k%
UNION
select names
from table2
where lastname like k%  

これにより、table1 と table2 の結果が結合され、姓が k で始まる結果に UNIQUE NAMES が表示されます。したがって、JOHN KRAMER と JOHN KUTCHER が存在する場合、JOHN のみが 1 回表示されます。
重複するエントリも必要な場合は、使用しますUNION ALL

于 2012-06-04T12:56:32.797 に答える
0

あなたの問題をよく理解しているかどうかはわかりませんが、すべてのレコードを一緒に追加する必要がある場合は、UNION ALLを使用する必要があります。

お気に入り:

select name from project_content

UNION ALL

select name from project_master 

UNION ALL

select name from project_master 

UNION ALL

select name from project_menu_master 

同じタイプの各選択に同じ量の列があることを確認してください

于 2012-06-04T12:59:01.150 に答える