2010-03-28 26 views
15

bağlı edilemedi: Visual Studio 2008 yılında çalıştırmayı denediğinizdeçok parçalı tanımlayıcı bu çok basit sql deyimi var

SELECT  max_dose 
FROM   psychotropes 
WHERE  (patient_meds.psychotrope = psychotrope_name) AND (patient_meds.patient_id = 12) 

, bu "çok parçalı 'patient_meds.psychotrope söylüyor Ben diyagram izleyicide iki tablo arasında bir ilişki set çünkü 'tanımlayıcı,

bu garip "bağlı edilemedi

cevap

16

sana sıra masa listesinde patient_meds dahil gerekecek sanırım:

FROM psychotropes, patient_meds 
+0

omg. Bu hatayı yaptığına inanamıyorum. Pekala, oraya katılmadığım aylar oldu ... thx man – jello

+2

Bu eski tarz birleşim ... kötü biçim. JOIN anahtar kelimesi kullanımı için durilai'nin cevabına bakınız – gbn

+0

@gbn ve burada ** durilai'nin JOIN anahtar kelimesi için cevap ** –

9

Sorgudaki tabloyu dahil etmiyorsunuz. Şemayı bilmeden bu sadece bir varsayımdır. Ayrıca bir veritabanı şeması, sorgularda yardımcı olacak hiçbir şey yapmaz.

SELECT ax_dose 
FROM psychotropes 
INNER JOIN patient_meds ON psychotropes.psychotrope_name = patient_meds.psychotrope 
WHERE (patient_meds.patient_id = 12) 
+0

"Ayrıca bir veritabanı diyagramı sorgulara yardımcı olmak için hiçbir şey yapmıyor" demek, iki tabloyu birleştirmek için yabancı anahtarla bağlantı kurmam gerekmiyor mu? – jello

+2

@jello: Teknik olarak, çoğu RDBMS'de, no. Yine de, yine de iyi bir fikir. –

+0

@durilai: Bir ERD, aynı bilgiyi almak için birden çok "DESC tablosu" komutunu çalıştırmaya gerek kalmadan kaydeder. –

İlgili konular