# เคยแต่ join ใน database ก้อนเดียวกันมะเคย join จากคนละก้อนสักกะที
# เลยถามเพื่อนเขียว อืมแล้วเค้าก็บอกว่า มันแค่ใส่ dbo ต่อจากชื่อ db นี่เอง ^^'
SELECT a.[field], b.[field]
FROM [db1].dbo.[table] AS a , [db2].dbo.[table] AS b
WHERE a.[field] = b.[field]
# อันแรกนี้ทดสอบบน MS SQL
SELECT * FROM db_1.tb inner join db_2.tb on db_2.tb.id = db_1.tb.id
# ต้องลองกับ MySQL ด้วยผลปรากฏว่าฉลุย ไม่เห็นต้องใส่ dbo เลยอ่ะ สงสัย dbo เป็น syntax ของ mssql มั้ง
เพิ่มเติม join ใน update statement
# นั่งงมตั้งสับสนกันชิบหายเลยคือ update join แบบ mssql และ แบบ mysql สับสนกันหมดแหละ
แบบ MySQL
update a inner join b on a.id = b.id
set a.name = 'somsak'
แบบ MSSQL
update a
set a.name = 'somsak'
from a inner join b on a.id = b.id
สังเกต
- mysql จะไม่ใช้ from คือ จะ inner join ต่อ update table เลย
Notes:
- ทำไม MSSQL update 2 table ใน statement เดียวไม่ได้หว่า ที่นี้ และ ที่นี้ เค้าว่ามา
- แล้ว MySQL ทำไม update ใน statement เดียวกันเลยได้หว่า ตัวอย่าง ที่นี้เลย
References:
- เพื่อน keaw
- http://www.experts-exchange.com/Programming/Languages/SQL_Syntax/Q_22415033.html
- http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=67938
- http://www.tek-tips.com/faqs.cfm?fid=1958
- http://www.java2s.com/Tutorial/MySQL/0140__Insert-Update-Delete/Updatetwotablesinoneupdatestatement.htm
- ลองมั่วๆ เองมั่ง
No comments:
Post a Comment