簡體   English   中英

從SQL中的兩個表中選擇

[英]Selecting from two tables in sql

我發布這個問題是因為我確實找不到解決方案,我花了一天的時間尋找如何做到這一點,但我無法使其工作。 那也是因為我是sql的新手,我需要一些幫助。

現狀:我有一個包含3個表的數據庫:訂單,產品,購買。 在我的C#/。NET應用程序中,我需要顯示一個訂單中的所有產品,首先是表結構。

TABLE orders
    int id
    int Totalprice

Table products
    int id
    string name
    ...

Table buys
    int id
    int price
    int quantity
    int orderId
    int productId

同樣,一個購買可以有許多產品並有一個訂單,一個訂單可以有許多購買。

我在我的應用程序中正在做什么:

在我的C#/。NET應用程序中,這就是我要做的:

SELECT * FROM buys WHERE orderid=listview.selecteditem.orderid;

我將結果存儲在列表中,然后:

foreach(item in buys)//buys is the list<buys> stored from the previous query
{
        SELECT * FROM products WHERE productid = item.productId;
}

注意:這只是一個偽代碼,因為我還沒有開始編碼。

問題:此代碼對我有用,但是有點慢,需要執行兩個查詢才能獲得預期的結果。 我需要一種在一個sql查詢中執行此操作的方法。 提前致謝

您可能要使用join

SELECT *
FROM buys b
JOIN orders o 
ON o.id = b.orderId
JOIN products p
ON b.id = o.productId

還要注意,指定字段而不是使用*是一種好習慣。

正如Michael所建議的,您可能還希望查看索引以獲得更好的查詢性能。

就像恩德所說,您可能想加入。 看一看,看看應該執行哪個聯接聯接的可視表示

暫無
暫無

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

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