صلة خارجية مع بعض الجداول الأخرى في FROM
سؤال
FROM [TABELA DE PRODUTOS/ESTOQUE] AS T1
, [TABELA DE PRODUTOS] AS T2
, [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS T3
, [TABELA DE FORNECEDORES] AS T4
, [TABELA DE PRODUTOS/ESTOQUE] AS T5
WHERE (((T1.Produto)=[T2].[ID])
ETC
وهكذا، كيف يمكنني إضافة صلة بين هذه الجداول؟ أحتاج إلى اليسار الانضمام، مثل:
FROM [TABELA DE PRODUTOS/ESTOQUE] <- TABLE1
LEFT JOIN [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] <- TABLE2
ON TABLE1.ID=TABLE2.ID
والتوليد: TABLE1 وTable2 أنا فقط واضاف لشرح
وشكرا.
هل لديك لاستخدام UNION؟
المحلول
لا لم يكن لديك لاستخدام الاتحاد. إذا فهمت سؤالك بشكل صحيح، انها بسيطة مثل الجمع بين أشياء من هذا القبيل:
FROM [TABELA DE PRODUTOS/ESTOQUE] AS T1,
[TABELA DE PRODUTOS] AS T2,
[TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS T3A,
[TABELA DE FORNECEDORES] AS T4,
[TABELA DE PRODUTOS/ESTOQUE] AS T5,
LEFT JOIN
[TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS T3B ON T1.ID=T3B.ID
WHERE (((T1.Produto)=[T2].[ID])
نصائح أخرى
FROM [TABELA DE PRODUTOS/ESTOQUE] AS TABLE1
LEFT JOIN [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS TABLE2
ON TABLE1.ID=TABLE2.ID
وأنا أفهم أن كنت تريد أن صلة خارجية جدول، دون استخدام "التسجيل في بناء الجملة؟
وماذا DBMS الذي تستخدمه؟ فمن الممكن القيام بذلك في من بند، ولكن بناء الجملة يختلف عن نظم إدارة قواعد البيانات لنظم إدارة قواعد البيانات.
وعلى سبيل المثال، في SQL Server، وهذا هو بناء الجملة:
SELECT *
FROM Table1, Table2
WHERE Table1.Id *= Table2.Id
في أوراكل، من ناحية أخرى، كنت لا تستخدم أستريكس ولكن (+) بقدر ما أتذكر.
وعلى أي حال، أعتقد أنه من أكثر وضوحا لاستخدام بناء الجملة JOIN (LEFT JOIN ...)
وربما:
FROM [TABELA DE PRODUTOS/ESTOQUE] AS T1
, [TABELA DE PRODUTOS] AS T2
, [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS T3
, [TABELA DE FORNECEDORES] AS T4
, [TABELA DE PRODUTOS/ESTOQUE] AS T5
WHERE (T1.Produto=T2.ID OR T2.ID IS NULL)
ETC
وقدمت تريد ترك انضمام جميع الجداول كنت ستفعل:
SELECT *
FROM [TABELA DE PRODUTOS/ESTOQUE] AS T1
LEFT OUTER JOIN [TABELA DE PRODUTOS] AS T2 ON T1.Key = T2.Key
LEFT OUTER JOIN [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS T3 ON T2.Key = T3.Key
LEFT OUTER JOIN [TABELA DE FORNECEDORES] AS T4 ON T3.Key = T4.Key
LEFT OUTER JOIN [TABELA DE PRODUTOS/ESTOQUE] AS T5 ON T4.Key = T5.Key
وأعتقد أن لديك لتوضيح سؤالك من أجل وقف التخمين لدينا.