簡體   English   中英

SQL查詢以從一個表中獲取數據,其中特定列等於另一表中的值

[英]SQL Query to get data from one table where a specific column equals value from other table

我有兩個包含以下列的表(相對於此問題的列子集)

Name: ORDERS
order_id
order_number
grand_total

Name: PURCHASE_ORDERS
purchase_order_id
order_number
supplier

基本上,我正在創建一個搜索函數,該函數可以根據輸入過濾掉DataGridView的行,我想知道如何獲取查詢,該查詢將返回以下內容:

偽代碼示例-

從訂單中選擇* WHERE訂單編號=(從采購訂單中選擇訂單編號,其中供應商=“測試”)

有時,可以從purchase_orders表中返回多個訂單號,這會影響上述查詢嗎?

你應該用

SELECT* 
   from orders 
WHERE 
   order_number 
IN (SELECT 
       order_number 
    FROM
       purchase_orders 
    WHERE supplier = 'test')

參見: http : //www.tutorialspoint.com/mysql/mysql-in-clause.htm

SELECT
    *
FROM
    orders
WHERE order_number IN (SELECT order_number FROM purchase_orders WHERE supplier = 'test')

或更好

SELECT
    *
FROM
    orders
    LEFT OUTER JOIN purchase_orders ON purchase_orders.order_number = orders.order_number
WHERE
    purchase_orders.supplier = 'test'

暫無
暫無

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

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