您可以使用子查詢:
SELECT * FROM `form` WHERE `id` IN (SELECT `formid` FROM `webformsystemflags`)
慎用雖然在大型數據庫子查詢。你可以用連接做同樣的事情,但這是一個簡單的解決方案,可以幫助你。
或者對於不具有一定的標誌的所有結果:
SELECT * FROM `form` WHERE `id` IN (SELECT `formid` FROM `webformsystemflags` WHERE `sysflagid` != 1 OR `sysflagid` != 2)
或加入方法:
SELECT f.*, r.`sysflagid` FROM `form` f LEFT JOIN `webformsystemflags` r ON r.`formid` = f.`id` WHERE r.`sysflagid` != null
將讓你的表格和相關標誌。但是,如果表單上有多個標誌,它將不會在一行中獲得所有標誌。那你可能需要在旗幟上做一個concat,但這個答案已經越來越不必要地複雜了。
* 最後的編輯*
好nutsandbolts - 你需要更新你的問題使我們兩個人做的過了頭自己在許多不同的查詢,它是不是真的幫助回來說,它不給出正確的結果。通過簡單地檢查我們提供的查詢並使用它們後面的一般邏輯來撰寫適合您的查詢,就可以輕鬆獲得正確的結果。
所以,我的最後一個建議 - 你說你想要一個查詢,將返回一個形式IF它應用了和一定的標誌,是不不已應用到它的其他標誌。
這是假設你想要的一切形式的爲1的標誌,並且不是2或3或無:
SELECT f.*, r.`sysflagid` FROM `form` f LEFT JOIN `webformsystemflags` r ON r.`formid` = f.`id` WHERE r.`sysflagid` =1 AND r.`formid` NOT IN (SELECT `formid` FROM `webformsystemflags` WHERE `sysflagid` = 2 OR `sysflagid` = 3)
因爲你webformsystemflags是關係這個查詢將不會返回不中存在的任何形式webformsystemflags表 - 所以你不需要考慮null。
如果這不是你正在尋找的,我強烈建議你以絕對和完美的清晰度重寫你的問題,因爲你需要的原因之後,我退出了這個對話。儘管你很幸運。玩的開心。
從查看提供的答案,以及您做什麼/不想要的,這是它。你想知道哪種形式有任何標誌1,2 3(一個或多個)....或...你在尋找沒有特定標誌的表格。他們是完全不同的查詢。 – DRapp
我正在尋找沒有應用特定/特定標誌的表單。 – allthenutsandbolts
我更新了我的答案,根據您最後的評論,它提取的表格只有1個應用,而不是2或3。從中您可以定製您的查詢以找到表單標記2而不是1或3等。 –