簡體   English   中英

在表中選擇all表,其中表1中的列存在於另一個表中,第二列等於第二個表中的變量

[英]Select all in table where a column in table 1 exists in another table and a second column equals a variable in second table

我知道標題令人困惑,但它是我能解釋的最好的。 基本上我正在為擁有兩家電影院的公司開發一個電影院列表網站。 所以我有一個數據庫,其中包含兩個表“Films”和“Listings”,其中包含兩個電影院的數據。

如果電影名稱出現在列表中,我試圖為一部電影選擇所有電影和他們的數據(因為兩部電影院共享所有電影,但在表格中但可能沒有相同的電影顯示)

這是我想出來的但是我遇到了一個問題,因為當“SELECT DISTINCT”返回多個結果時,它顯然無法與tbl Films上的FilmName匹配。 如何檢查tblFilms上所有FilmNames的值?

SELECT * 
FROM tblFilms
WHERE FilmName = (SELECT DISTINCT FilmName FROM tblListings WHERE Cimema = 1)

如果子查詢返回多個值,則使用IN

SELECT * 
FROM tblFILMS 
WHERE FilmName IN (SELECT DISTINCT FilmName FROM tblListings WHERE Cimema = 1)

解決thius的另一種方法是使用JOIN我推薦

SELECT  DISTINCT    a.* 
FROM    tblFILMS a
        INNER JOIN tblListings b
            ON a.FilmName = b.FilmName AND
                b.Cimema = 1

為了更快地執行查詢, FilmName在兩個表上的FilmName上添加一個INDEX

如果您有表格的模式,那將有所幫助。

也就是說,我相信你想要看的是JOIN關鍵字。 (內/外/左/等)。 這正是JOIN的意圖(即你的頭銜)。

暫無
暫無

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

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