#mysql
#mysql
Вопрос:
У меня есть две таблицы, к которым мне нужно присоединиться
Table1
col1 col2 col3
------------------
1 A 20
2 B 10
3 C 30
4 D 40
Table2
col1 col2
-----------
1 A
2 B
3 C
4 D
Я должен объединить обе таблицы. Поскольку в table2 нет col3, я добавил в качестве фиктивного столбца в запросе.
Мне нужно выполнить операцию поиска в обеих таблицах для col3
Я пробовал, но он выдает исключение неизвестного столбца.
(SELECT col1, col2, col3 from table1 where col3 = "10")
UNION
(SELECT col1, col2, "10" as col3 from table2 where col3 = "10")
Любая помощь будет оценена
Комментарии:
1. Как вы можете искать col3 в table2, если в нем нет такого столбца?
2. @juergend, после операции ОБЪЕДИНЕНИЯ мы могли бы выполнить поиск. Я получил свое решение.
Ответ №1:
Вы можете запросить объединенные данные непосредственно после этого:
SELECT col1, col2, col3 from
(
(SELECT col1, col2, col3 from table1)
UNION
(SELECT col1, col2, "10" as col3 from table2)
) as b
where col3 = "10"
Комментарии:
1. Я ожидал только этого. Спасибо
Ответ №2:
В Table2 нет необходимости в WHERE
предложении:
SELECT col1, col2, col3 FROM Table1 WHERE col3 = '10'
UNION
SELECT col1, col2, '10' FROM Table2
Посмотрите демонстрацию.
Результаты:
> col1 | col2 | col3
> ---: | :--- | :---
> 2 | B | 10
> 1 | A | 10
> 3 | C | 10
> 4 | D | 10
Комментарии:
1.
Where
предложение необходимо, так как оно может быть любым значением поля, не относящимся к 10.2. @Yash Нет, предложение WHERE необходимо только для Table1.