2017-02-24 8 views
0

在庫の種類に応じて余分なフィールドのためにさまざまなテーブルに結合する必要がある在庫テーブルにリンクするinvoice_line_itemsのテーブルを設定しようとしています。複数のテーブルの結合に問題がある

invoice_line_items < inventory_id> JOIN inventory < type = m> JOIN inv_extra_m/< type = d> JOIN inv_extra_d 

SELECT DISTINCT l.invoice_line_number 
FROM invoice_line_items l 
LEFT JOIN inventory i 
ON i.inventory_id = l.inventory_id 
JOIN (
SELECT i.* 
FROM inventory i 
JOIN inv_extra_m m ON i.inventory_id = m.inventory_id 
WHERE (i.type = 'a' OR i.type = 'b')) 
UNION 
SELECT i.* 
FROM inventory i 
JOIN inv_extra_d d ON i.inventory_id = d.inventory_id 
WHERE i.type = 'd' 
) ie ON ie.inventory_id = i.inventory_id 
WHERE l.invoice_id = 1 
+0

を選択..あなたがエラーを持って、より良い説明? ..間違った結果? 。 「どうしてmysql-queryにタグを付けることができないのか」というのはどういう意味ですか...何が問題なのですか? – scaisEdge

+0

私は正しいタグにタグを付けるとIdkになります。私はそれをmysql-queryとしてタグ付けしようとしましたが、それを受け入れません。とにかく私のエラーは: #1064 - あなたはSQL構文に誤りがあります。あなたのMySQLサーバーのバージョンに対応するマニュアルをチェックして、正しい構文が近くにあることを確認してください。ie ie.inventory_id = i.inventory_id WHERE l.invoice_id = 1 LIMIT 0、30 '、14行 – Joshua

+0

制限節はありませんあなたの質問? –

答えて

0

あなたはそれぞれの後に、テーブル名ASSIGNI不適切な組合sintaxを持っているが一部

SELECT DISTINCT l.invoice_line_number 
    FROM invoice_line_items l 
    LEFT JOIN inventory i 
    ON i.inventory_id = l.inventory_id 
    JOIN (
     SELECT i.* 
     FROM inventory i 
     JOIN inv_extra_m m ON i.inventory_id = m.inventory_id 
     WHERE (i.type = 'a' OR i.type = 'b') 
     UNION 
     SELECT i.* 
     FROM inventory i 
     JOIN inv_extra_d d ON i.inventory_id = d.inventory_id 
     WHERE i.type = 'd' 
    ) ie ON ie.inventory_id = i.inventory_id 
    WHERE l.invoice_id = 1 
関連する問題