2016-08-06 5 views
0

Мне нужно отобразить два столбца из моей таблицы посещаемости (MEMBER_ID & MEETING_ID) и один столбец из моей таблицы встреч и, наконец, два столбца из моей таблицы-члена, которая отображает имена, соответствующие MEETING_ID.Выбор столбцов из разных таблиц

В таблице посещаемости имеет составной ключ (member_id *, MEETING_ID *)

первичный ключ таблицы-члена является member_id

первичный ключ таблицы Meeting является MEETING_ID

Моя попытка не работает, может кто-то, пожалуйста, помогите?

SELECT MEMBER_ID, MEETING_ID, MEETING_NAME MEMBER_FIRSTNAME, MEMBER_LASTNAME 
FROM ATTENDANCE, MEMBER, MEETING 
WHERE MEETING.MEMBER_ID = MEETING.MEMBER_ID; 

Конечный результат должен быть:

MEMBER_ID MEETING_ID MEETING_NAME  FIRSTNAME LASTNAME 
0001   MEET0004  SPORTS DAY  JOHN   SMITH 
+0

Несколько вещей ... предложение WHERE, как вы его написали, всегда верно, поэтому вы можете удалить его. Вероятно, вы имели в виду MEETING.MEMBER_ID = ATTENDANCE.MEMBER_ID; но вам также нужно условие соединения между УЧАСТНИКОМ и ЧЛЕНОМ. Тогда будет лучше, если вы используете синтаксис соединения SQL Standard (ATTENDANCE join Join (on)) присоединяется к MEMBER on (condition) ...). Наконец, вам нужна только одна строка в результате или ВСЕ соответствующие строки? Если только одна строка, вы, вероятно, пропустили какое-то условие WHERE, например MEMBER_ID = ... О, и в SELECT вам нужно указать, из какой таблицы вы хотите поля – mathguy

+0

Я понимаю, что ответ FallAndLearn работает для вас, но вы действительно должен начать использовать Explict Join Syntax, а не подразумевать, потому что вы не можете выполнить внешнее соединение с Implicit и потому, что Explicit уже существует в течение нескольких десятилетий как стандарт ANSI. – Matt

ответ

1

Может быть вам это нужно.

SELECT A.MEMBER_ID, A.MEETING_ID, M2.MEETING_NAME, M1.MEMBER_FIRSTNAME, M1.MEMBER_LASTNAME 
FROM ATTENDANCE A, MEMBER M1, MEETING M2 
WHERE M1.MEMBER_ID = A.MEMBER_ID 
AND A.MEETING_ID = M2.MEETING_ID; 
1
SELECT 
    a.MEMBER_ID 
    ,a.MEETING_ID 
    ,mt.MEETING_NAME 
    ,mb.MEMBER_FIRSTNAME 
    ,mb.MEMBER_LASTNAME 
FROM 
    ATTENDANCE a 
    INNER JOIN MEMBER mb 
    ON a.MEMBER_ID = mb.MEMBER_ID 
    INNER JOIN MEETING mt 
    ON a.MEETING_ID = mt.MEETING_ID 
; 

Используй Явный синтаксис, а затем настроить свои отношения с помощью ВКЛЮЧЕНО условий и ключей между таблицами. Примечание. Я также использовал псевдонимы таблицы, чтобы сократить типизацию.

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