2013-07-08 4 views
0

У меня есть 2 стола.SQL Mach две таблицы

Таблица1

  • Имеет кол около 2700 строк
  • Colums: ID, НЕТ, ИМЯ

Table2:

  • Имеет рассчитывать около 300 строк
  • Colums: ID, NAME

где:

Table1.NO = Table2.ID 

Я хочу перечислить Table1 (2700 строк), но если Table1 не содержит некоторых строк TABLE2, я хочу написать «NA»

Как я могу это сделать с SQL?

ответ

1

Я предполагаю, что вы хотите вывести имя из table2, если он присутствует, и в этом случае:

SELECT 
    a.id, 
    isnull(b.name, 'NA'), 
    a.name 
FROM 
    table1 a 
LEFT JOIN 
    table2 b 
    ON 
    a.no = b.id 

сделает это за вас (Я также выдаю идентификатор и имя из таблицы1).

EDIT:

Извиняюсь, я не видел тег MySQL, пока я не отвечал. Вам нужно будет использовать coalesce функцию вместо этого, если isnull, например, так:

SELECT 
    a.id, 
    coalesce(b.name, 'NA'), 
    a.name 
FROM 
    table1 a 
LEFT JOIN 
    table2 b 
    ON 
    a.no = b.id 
1

Попробуйте LEFT JOIN и ISNULL функция, как это ниже

SELECT ISNULL(Table1.Name,'NA') 
FROM Table1 
LEFT JOIN Table2 
ON Table1.NO = Table2.ID 
+0

есть функция ISNULL в MySQL? –

+0

да, http://forums.asp.net/t/1162409.aspx/1 – 5uperdan

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