sql server توحيد بليغ مع الجدول المعلن لاستخدامها في الاستعلام




استعلامات sql (2)

نظرا لارفل 5.2 وقاعدة بيانات سكل سيرفر 2005. لدي استفسار مثل هذا:

declare @mapping_table table(id int, name varchar(255), mapping_value varchar(255))

insert into @mapping_table values (1, 'foo', 'A1')
insert into @mapping_table values (2, 'bar', 'A1')
insert into @mapping_table values (3, 'baz', 'A2')

select distinct(lookup_field) 
from production_table
where lookup_field not in (
  select name
  from @mapping_table 
)

عند تشغيل هذا باستخدام بليغة مثل ذلك: DB::connection('sqlsrv')->select($query) أحصل على الخطأ The active result for the query contains no fields.

الخلفية: أنا بصدد إنشاء تطبيق يضمن نتيجة استعلامات معينة في مجموعة نتائج صالحة لأغراض إعداد التقارير. معظم هذه البيانات تعيينات أرا لإدخال النص مجانا إلى قائمة محددة من الخيارات. إذا تم العثور على إدخال نص مجاني جديد في الإنتاج يجب أن يشير استعلام قيمة غير محددة (ق) حتى أتمكن من إضافتها إلى الجدول المحدد.

ليس لدي أي وصول الكتابة على قاعدة بيانات الإنتاج، قراءة فقط. إنشاء الإجراءات المخزنة ليس خيارا بسبب هذا القيد. عند نسخ الاستعلام إلى سكل سيرفر إدارة ستوديو أنه يعمل مثل سحر. أنا التخمين هذا لأن سمز يفصل داخليا النتائج و بليغة لا.

كيف يمكنني الحصول على استعلام مثل واحد معين الحصول على العمل مع بليغة؟


Answer #1

التخمين الصرفة، ولكن هل بليغة تتطلب أسماء الأعمدة؟

محاولة

Select distinct(lookup_field) as lookup_field

Answer #2

أنا فقط حاولت الأمر أدناه على بلدي تينكر وأنها عملت بشكل جيد. تذكر تضمين "سيت نوكونت أون" والتنسيق لاستخدام سطر واحد فقط.

DB::connection()->select("SET NOCOUNT ON; declare @mapping_table table(id int, name varchar(255), mapping_value varchar(255)); insert into @mapping_table values (1, 'foo', 'A1'); insert into @mapping_table values (2, 'bar', 'A1'); insert into @mapping_table values (3, 'baz', 'A2'); select distinct lookup_field from production_table where lookup_field not in (select name  from @mapping_table)");




eloquent