0

表A

Id  | M  | D  |   Y   |
=======================
1  | 10  | 28  | 2012 |
2  | 11  | 29  | 2012 |
3  | 12  | 30  | 2012 |

表B

Id  | M  | D  |   Y   |
=======================
4  | 09  | 28  | 2012 |
5  | 11  | 29  | 2012 |
6  | 01  | 30  | 2013 |

MDで検索します

例: M = 11 AND D = 29 に一致する場合 ... ID(s) 25を返します

このように1つのテーブルでしか見つけることができません

mysql_query("SELECT * FROM TableA WHERE M='11' AND Y='29' ORDER BY D ASC , Id DESC;";)

しかし、複数のテーブルで見つける方法は?

4

3 に答える 3

4

2 つの のUNION間に句を使用しますSELECT

(SELECT Id, M, D, Y FROM TableA WHERE M='11' AND Y='29')
UNION
(SELECT Id, M, D, Y FROM TableB WHERE M='11' AND Y='29')
ORDER BY D ASC , Id DESC
于 2012-11-28T13:20:07.373 に答える
2

すべてのレコードを取得するには、UNION ALL(同一のレコードがある場合) を使用することをお勧めします。tableBそれ以外の場合UNIONは、それで十分です。

SELECT * FROM TableA WHERE M='11' AND Y='29'
UNION ALL
SELECT * FROM TableB WHERE M='11' AND Y='29'
ORDER BY D ASC , Id DESC;
于 2012-11-28T13:22:54.430 に答える
2
SELECT * FROM TableA WHERE M='11' AND Y='29'
UNION
SELECT * FROM TableB WHERE M='11' AND Y='29'
ORDER BY D ASC , Id DESC;
于 2012-11-28T13:20:39.990 に答える