У меня есть таблица1 (записи 3) и таблица2 (записи 3).
- Где у меня есть имя поля в обоих.
- Теперь я хочу получить результат из этих двух таблиц
- , который покажет мне обе записи таблицы и возьмет только одну, если есть дубликаты.
- из этого результата я сделаю основной запрос, используя аналогичные или другие логические выражения
- Таким образом, мои ожидаемые выходные записи будут содержать 5 строк, а не 6 строк. Как мне это сделать?
Пример:
table1: table2:
+-------------------------+ +--------------------------------+
| Name | ID | Name | ID
+-------------------------- +---------------------------------
| A | 1 | 1 December Name | 4
| B | 2 | D | 5
| 1 December Name | 3 | E | 6
My Expected output is following which works, but does not work when i use WHERE
like to only get '1 December Name':
+-----------------------------------------------------+
| Name | ID
+-----------------------------------------------------
| A | 1 table1
| B | 2 table1
| 1 December Name | 3 table2 or table1 (no unique)
| D | 4 table2
| E | 5 table2
Я пробовал это:
SELECT * FROM
(
(
SELECT name AS name FROM table1
)
UNION
(
SELECT anothername AS name FROM table2
)
) as t
WHERE name like '%1 December Name%'
limit 1,10
Вывод: Ваш SQL-запрос был успешно выполнен (запрос занял 0,2798 с)
Проблема: в следующем запросе нет ошибок, но он не находит ту запись, которая содержит «Имя 1 декабря»
Продолжение: работает, теперь я знаю, какой идентификатор он использовал
SELECT NAME, ID, STATUS FROM
(
(
SELECT NAME AS name , id, CONCAT('table1') AS STATUS FROM table1
)
UNION ALL
(
SELECT ANOTHERNAME AS name, id, CONCAT( 'table2' ) AS STATUS FROM table2
)
) AS t
WHERE
t.NAME LIKE '%1 December Name%'
LIMIT 1 , 10;