考慮下面的模式:SQL:搜索盛大子表specifc項目
Customers: Col | Type | -------------------| id | INTEGER | name | VARCHAR | Orders: Col | Type | ----------------------| id | INTEGER | customer_id | INTEGER | date | DATE | Items Col | Type | ----------------------| id | INTEGER | order_id | INTEGER | name | VARCHAR | quantity | INTEGER |
而這裏的breif運行模式下來: 客戶可以有多個訂單,一個訂單可以有很多項目 注意:您可能會爭辯說,這些項目應該使用product_id引用某些產品表,但現在應該讓它變得簡單。
從我的數據庫,我想請教以下問題:
對於給定的客戶,列出所有與香格里拉啓動項目
我查詢的版本是這樣的:
SELECT * FROM items where name LIKE'La%'
這將返回所有客戶以La開頭的所有項目。我想要的是,我爲具有標識爲1的特定客戶獲取所有項目。如何編寫此類查詢?我的第二個版本是這樣的:
SELECT * FROM items WHERE name LIKE'La%'AND order_id in(SELECT id FROM orders WHERE customer_id = 1);
但是,他們是否有任何其他高效/優雅或更好的方法來做同樣的事情?
我也是在寫這相同的答案的中間,所以我第二並給予好評。 – 2009-02-21 10:34:40
哇,你超越了:) – 2009-02-21 10:36:50