這個問題很難總結成一句話。我有兩張桌子 - 其中一張桌子是由外部飼料自動更新的。第二個表包含第二個表中某些行的額外信息,由唯一鍵標識。這裏有一個例子:我應該如何將兩個表合併爲一個SELECT?
Table1 id: int PRIMARY KEY channel: varchar(255) UNIQUE KEY name: varchar(255) NOT NULL verified: tinyint(1) NOT NULL Table2 id: int PRIMARY KEY channel: varchar(255) UNIQUE KEY extra_info: varchar(255)
表1是主表。這是實際選定的表格。我希望Table2中的字段(id和channel除外)在選擇時移動到Table1,就好像表1中存在的Table2中的所有行在選擇時合併一樣。
例如,我想這兩個表中的信息,最終成爲JSON輸出這樣
[{
"id": 5,
"channel": "bkids2",
"name": "Bkid",
"verified": true,
"extra_info": "Some extra information added using Table2"
},
...
]
我不知道該怎麼繼續以最快的方式是。我可以使用SQL語法快速執行嗎?我知道某些類型的查詢速度非常慢,所以也許只是在兩個表中獲取所有數據並使用服務器端編程語言執行合併會更快一些?
我半路上假設前者是正確的答案,在這種情況下:我怎麼連做這個使用MySQL?子查詢?加入?聯盟?
我得承認我不完全瞭解這兩種技術的工作,或者如何快速/慢速他們經營,所以感謝任何人誰能夠在正確的方向指向我。
這工作幾乎是完美的,但如何,我從表2爲默認值設置列如果行找不到?例如,如果由於table2中找不到匹配的行而導致無法爲表填充'extra_info'列,請將其設置爲字符串「{}」或數字或其他內容? – Hubro 2012-05-06 17:30:23
我已經編輯了我的答案,將'IFNULL(Table2.extra_info,'DefaultValue')添加爲extra_info'。 – 2012-05-07 05:57:23
優秀,感謝 – Hubro 2012-05-07 07:51:58