Mysql присоединиться к запросу - PullRequest
0 голосов
/ 08 января 2010
SELECT
    description
FROM 
    diagnosis_mapping 
LEFT JOIN
    diagnosis_codes
ON
    diagnosis_codes.codeid = diagnosis_mapping.codeid

SELECT
    description
FROM 
    diagnosis_mapping 
LEFT JOIN 
    diagnosis_codes
ON
    diagnosis_codes.codeid = diagnosis_mapping.secondarycodeid

Как объединить эти 2 запроса и получить информацию в одном наборе результатов? Во-первых, мне нужно сопоставить с codeid, а во-вторых, мне нужно сопоставить с вторичным codeid одного и того же mastertable для получения описания обоих.

Ответы [ 2 ]

5 голосов
/ 08 января 2010

Вы можете сделать два объединения в одном запросе, просто присвоив псевдоним именам таблиц, чтобы MySQL знал, что вы хотите получить:

SELECT
    a.description desc_a,
    b.description desc_b
FROM 
    diagnosis_mapping 
LEFT JOIN
    diagnosis_codes a
ON
    a.codeid = diagnosis_mapping.codeid
LEFT JOIN 
    diagnosis_codes b
ON
    b.codeid = diagnosis_mapping.secondarycodeid

В этом примере a - это псевдоним для первой таблицы diagnosis_codes и b для другой. Когда вы присваиваете псевдонимам таблицы, MySQL (и любая другая база данных, поддерживающая SQL) обрабатывает их в основном как две отдельные таблицы и извлекает данные из них независимо.

0 голосов
/ 08 января 2010
SELECT description FROM (diagnosis_mapping LEFT JOIN diagnosis_codes ON (diagnosis_codes.codeid = diagnosis_mapping.codeid)) LEFT JOIN diagnosis_mapping ON (diagnosis_codes.codeid = diagnosis_mapping.secondarycodeid)

Не уверен, что это именно то, что вам нужно, но попробуйте;] (может потребоваться проверка орфографии и добавление "AS" в случае каких-либо ошибок sql)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...