2017-02-23 8 views
-1

私は請求書明細のテーブルを持っています。各広告申込情報は、client_id、entity_id、vendor_idなどの複数のソースのいずれかから発生することができます。これらのIDのそれぞれは、名前やその他の情報を見つける別のテーブルの主キーと一致します。請求書明細のレポートを実行しようとしています。このレポートには、対応する名前を表示する各広告申込情報の[ソース名]という値を含めることが必要です。ソースがクライアントであれば、クライアントの名前が表示されます。ソースがベンダーであれば、ベンダーの名前などが表示されます。また、クライアント、エンティティー、またはクライアントのいずれであるかを示すテキストを連結することもできます。ベンダーなどMySQLでは、複数のフィールドにマッチした複数のテーブルから1つの値を返す方法

+2

少なくとも、サンプルデータ(使用例をカバーするのに十分)と望ましい結果を提供します。 –

+0

私はあなたのテーブルを理解することはできませんし、どのようにお客様や他の人が請求書を支払う決定する! – MohaMad

+0

私はそれを得たと思うが、まだ他の人の考え/アイデアを得たいと思う。 – bollacious

答えて

0

私はあなたがUNIONを探していると信じています。 2つのテーブルがある場合は、1つのテーブルを作成するためにユニオンを使用できます。

 SELECT * 
     FROM (
      SELECT client_id AS 'ID_FIELD', client_name AS 'NAME_FIELD', 'client' as 'TABLE_TYPE' FROM client_table 
      UNION 
      SELECT vendor_id AS 'ID_FIELD', vendor_name AS 'NAME_FIELD', 'vendor' as 'TABLE_TYPE' FROM vendor_table 
      ) AS t1 

     WHERE t1.ID_FIELD = 'YOUR_VALUE_HERE' 
関連する問題