Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Объединить таблицы / 7 сообщений из 7, страница 1 из 1
14.08.2013, 13:00:19
    #38366036
HFShak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединить таблицы
Добрый день!
Есть 2 таблицы:
TABLE1
NamePolicyUserPC0001

TABLE2
NamePolicyUserPC0001NEWVasya


Запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT TABLE1.Name, TABLE1.Policy, TABLE1.User
FROM TABLE1
WHERE TABLE1.Name = 'PC0001'
UNION
SELECT TABLE2.Name, TABLE2.Policy, TABLE2.User
FROM TABLE2
WHERE TABLE2.Name = 'PC0001'



Получаем:
NamePolicyUserPC0001PC0001NEWVasya


Как сделать так, что если в одной ячейке пусто, то брал данные из другой таблицы?
Как бы объединить 2 таблицы в одну.
Названия столбцов одинаковые.
Сам язык WQL, но он очень похож на MySQL
Должно получиться так:
NamePolicyUserPC0001NEWVasya
...
Рейтинг: 0 / 0
14.08.2013, 14:01:29
    #38366156
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединить таблицы
HFShak,

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT TABLE1.Name, ifnull(TABLE1.Policy, TABLE2.Policy) as Policy, ifnull(TABLE1.User, TABLE2.User) as User
FROM TABLE1 left join TABLE2 on TABLE1.Name=TABLE2.Name
WHERE TABLE1.Name = 'PC0001'
UNION
SELECT TABLE2.Name, TABLE2.Policy, TABLE2.User
FROM TABLE2
WHERE TABLE2.Name = 'PC0001'
...
Рейтинг: 0 / 0
14.08.2013, 14:18:59
    #38366190
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединить таблицы
qwerty112,

не, там WQL (SQL for WMI)
...
Рейтинг: 0 / 0
14.08.2013, 14:29:36
    #38366210
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединить таблицы
HFShakСам язык WQL, но он очень похож на MySQL
НИ хрена не похож. Он родственен диалекту MS SQL - собсно он и есть, просто жутко кастрированный и слегка адаптированный.

HFShakКак сделать так, что если в одной ячейке пусто, то брал данные из другой таблицы?
Как бы объединить 2 таблицы в одну.

ЕМНИП WQL такое не позволяет. Выбирай спокойно в два рекордсета, а выбор пустого-непустого делай на VBS.
...
Рейтинг: 0 / 0
14.08.2013, 15:09:00
    #38366292
HFShak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединить таблицы
Akina,

Все получилось, как написал qwerty112.
Только так:

SELECT TABLE1.Name, isnull(TABLE1.Policy, TABLE2.Policy) Policy, isnull(TABLE1.User, TABLE2.User) User
FROM TABLE1 left join TABLE2 on TABLE1.Name=TABLE2.Name
WHERE TABLE1.Name = 'PC0001'
...
Рейтинг: 0 / 0
14.08.2013, 15:50:14
    #38366378
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединить таблицы
HFShakAkina,

Все получилось, как написал qwerty112.
Только так:

SELECT TABLE1.Name, isnull(TABLE1.Policy, TABLE2.Policy) Policy, isnull(TABLE1.User, TABLE2.User) User
FROM TABLE1 left join TABLE2 on TABLE1.Name=TABLE2.Name
WHERE TABLE1.Name = 'PC0001'
"заработало" это, конечно, - хорошо,
но всё таки - это у вас точно WQL ?

незнаю как UNION, а join - он вроде как точно не поддерживал ...
...
Рейтинг: 0 / 0
14.08.2013, 15:56:48
    #38366388
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединить таблицы
qwerty112...
незнаю как UNION, а join - он вроде как точно не поддерживал ...

ага, вот оно видимо что
http://it2web.ru/index.php/wmi/186-vvedenie-v-wmi-cim-studio?start=1 Основное отличие WQL от ANSI SQL состоит в том, что WQL не позволяет производить изменения в данных WMI, т.е. фактически в WQL поддерживается лишь один оператор SQL: select. Кроме того, в операторе select языка WQL не поддерживаются следующие ключевые слова: DISTINCT, COUNT, JOIN, SUBSTRING, ORDER BY, UPPER, LOWER и DATEPART (эти ключевые слова поддерживаются в варианте Extended WQL (eWQL), реализованном в Microsoft SMS 2.0 и SMS 2003).
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Объединить таблицы / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]