2010-03-28 9 views
15

у меня есть это очень простой SQL заявление:Идентификатор нескольких частей не может быть связан

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

, когда я пытаюсь запустить его в Visual Studio 2008, он говорит мне «Мульти-часть«patient_meds.psychotrope 'идентификатор не может быть связан»

это странно, потому что я установил связь между двумя таблицами в программе просмотра диаграммы

ответ

16

Я думаю, вам придется включить patient_meds в списке таблицы как:

FROM psychotropes, patient_meds 
+0

omg. Я не могу поверить, что совершил эту ошибку. ну, это были месяцы, которые я не касался присоединений ... thx man – jello

+2

Это старый стиль, соединяющий ... плохую форму. См. Ответ durilai для использования ключевого слова JOIN – gbn

+0

@gbn, и где этот ответ ** durilai для ключевого слова JOIN ** –

9

Вы не включаете таблицу в запрос. Не зная схемы, это просто предположение. Также диаграмма базы данных ничего не помогает в запросах.

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

«Также диаграмма базы данных ничего не помогает в запросах», вы имеете в виду, что мне не нужно связывать две таблицы вместе с внешним ключом, чтобы присоединиться к ним? – jello

+2

@jello: Технически, в большинстве РСУБД, нет. Хотя это все же хорошая идея. –

+0

@ durilai: ERD сохраняет необходимость запуска нескольких команд 'DESC table' для получения той же информации. –

Смежные вопросы