簡體   English   中英

MySQL選擇加入多個表

[英]MySQL Select JOIN multiple Tables

我基本上有兩組表。 “ props_”和“ avail_”。 每個約。 我已經使用UNION ALL加入了4張桌子。

我需要選擇具有必要位置和睡眠的屬性,這些屬性未出現在特定日期范圍的可用性表中。

property tables... 'props_01', 'props_02', 'props_03', 'props_04'
   id    code         location    sleeps
   1     7A06E91875   devon       2
   2     440ac2664c   cornwall    4
   5     0474d4882b   devon       2


availability tables... 'avail_01', 'avail_02', 'avail_03', 'avail_04'
   id    prop_code     date
   1     440ac2664c    20130208
   2     440ac2664c    20130209
   3     440ac2664c    20130210
   4     440ac2664c    20130211
   5     440ac2664c    20130212

這些可用性表包含所有預訂日期 因此,我只希望從沒有針對指定日期范圍的可用性記錄的屬性表中進行選擇。 這就是我一直想查詢的方式...

(avail.date != '20130209' AND avail.date != '20130210' AND avail.date != '20130211' AND avail.date != '20130212' AND avail.date != '20130213') OR (avail.date != '20130210' AND avail.date != '20130211' AND avail.date != '20130212' AND avail.date != '20130213' AND avail.date != '20130214') 

我還需要將過濾器應用於位置和睡眠的屬性表。

我所具有的查詢除了可以進行可用性之外,還可以進行其他所有操作,它可以正常工作,但是我不知道如何最好地對其進行修改以查詢可用性表 ...

SELECT prop.* FROM (SELECT * FROM `props_01` UNION ALL SELECT * FROM `props_02` UNION ALL SELECT * FROM `props_03` UNION ALL SELECT * FROM `props_04`) prop WHERE prop.location='Devon' AND prop.sleeps>='4' ORDER BY prop.sleeps ASC

如果要查找另一個表中不存在的行,則需要左連接。 請參閱此以獲取更多信息:

http://dev.mysql.com/doc/refman/5.0/en/join.html

http://dev.mysql.com/doc/refman/5.0/en/left-join-optimization.html

要聯接3個表:Table1,Table2,Table3

SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id LEFT JOIN table3 ON table2.id = table3.id;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM