試想一個舞會,我們排隊另一側的男孩和女孩。每個男孩一次只能放入表A中。同樣地,對於女孩子表B.MYSQL「每一行排除在外,但只有一次」加入
然後我們要在B中的女孩一次且僅一次匹配A中的男孩,同樣B中需要的女生,以配合一個和A.只有一個男孩
A將有一個ID列作爲主鍵,並且將舉行與它們相匹配的女孩,還是空的ID,如果沒有相匹配的B_ID。
B將有女孩子一樣。
表是這樣的:
table A (boys)
---------
|id|b_id|
---------
| 1|NULL|
| 2|NULL|
| 3|NULL|
| 4|NULL|
| 5|NULL|
| 6|NULL|
---------
table B (girls)
---------
|id|a_id|
---------
| 1|NULL|
| 2|NULL|
| 3|NULL|
| 4|NULL|
| 5|NULL|
| 6|NULL|
---------
什麼類型的查詢將匹配一個且只有一個女孩一個且只有一個男孩一個尚未匹配?結果會是這個樣子:
results
-------------------------
|a.id|a.b_id|b.id|b.a_id|
-------------------------
| 1| NULL | 1| NULL |
| 2| NULL | 2| NULL |
| 3| NULL | 3| NULL |
| 4| NULL | 4| NULL |
| 5| NULL | 5| NULL |
| 6| NULL | 6| NULL |
-------------------------
我可以通過使用唯一索引臨時表中獲得這樣的結果,但是我正在尋找一個查詢給我,結果沒有一個臨時表爲實際應用這個查詢是針對兩邊數百萬行。
都應該有相同的行數(總)的兩個表? –
讓我指出這是夜間正常化。你應該有第三張關係表。 – Randy
無論規範化問題如何,爲什麼你們不是這個問題的人?想象一下,如果每個人都把這麼多的努力放在他們的問題上,生活會是多麼容易! –