我有一個table1(記錄3)和table2(記錄3)。爲什麼將這兩個表合併成一個表union,在MySQL中顯示無效結果?
- 我在哪裏都有字段名稱。
- 現在我想從這兩個表
- 做出結果,它將向我顯示兩個表記錄,如果有重複,則只顯示一個記錄。
- 從那個結果我會做主要查詢使用like或或其他邏輯語句
- 所以我預期的輸出記錄將包含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秒)
問題:以下查詢沒有錯誤,但它確實如此ES沒有發現含有「12月1日名稱」
跟進該記錄:作品我現在知道它使用哪個ID
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;
如果您刪除查詢中的「限制1,10」部分,它會起作用嗎? –
如果您刪除WHERE子句,您會得到什麼結果? –
沒有WHERE子句,整個列表。沒有限制1,10也沒有。 – YumYumYum