簡體   English   中英

當滿足表B中的條件時從表A中選擇

[英]select from table A when condition is met in table B

不是最好的標題,因此為什么我找不到能解決我問題的解決方案,如果您知道我的建議,請向我指出。

目前,我有以下查詢,

SELECT PRODUCT_NAME
      ,LIVE
      ,LOCATION
FROM PRODUCT_TABLE
WHERE ORDER = 'ONLINE'
AND LIVE = '0' OR '1'

從本質上講,這是一個非常簡單的查詢,它可以拉回很多我一直在使用Excel進行查詢的數據,但是我敢肯定,您可以想象一個真正繁瑣的過程,因此最好直接使用據我所知,SQL是可以做到的,只是我的知識在一段時間不使用后完全消失了。

但是本質上我想要實現的是在某個位置上查找所有在線的在線產品(0在上面的查詢中為“是”),並且在另一個不在線的位置具有匹配的產品名稱(在這種情況下,不在線= 1)。

例如,以下是一些以類似方式格式化的數據。

LOCATION    LIVE    PRODUCT_NAME
BERLIN      0       CHAIR
LONDON      1       CHAIR
PARIS       0       LAMP
PARIS       0       SOFA
WARSAW      1       CHAIR
MADRID      0       CHAIR
MANCHESTER  1       SOFA

如果有人可以提供解決方案或為我指明正確的方向,那就太好了,謝謝!

您想要這樣的東西:

select pt.*
from product_table pt
where pt.live = '0' and
      exists (select 1
              from product_table pt2
              where pt2.product_name = pt.product_name and
                    pt2.location <> pt.location and
                    pt2.live = '1'
             );
SELECT DISTINCT
       pt.PRODUCT_NAME
      ,pt.LIVE
      ,pt.LOCATION
FROM PRODUCT_TABLE pt
LEFT JOIN PRODUCT_TABE pt2
    on pt.NAME = pt2.NAME 
        AND pt2.LIVE = 1 
        AND pt.LOCATION != pt2.LOCATION
WHERE pt.ORDER = 'ONLINE'
AND pt.LIVE = '0'
AND pt2.NAME IS NOT NULL

暫無
暫無

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

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