我有两张table。 quotes_table
以及 flags_table
. 这个 quotes_table
与 flags_table
-每个引用可以有多个标志。 flags_table.id_flag
是的外键 quotes_table.id_flag
.
示例输入
报价表
pk | quote_key | id_flag
--------------------------
1 | 111 | 200
2 | 222 | 251
3 | 111 | 250
标志\u表
id_flag | name
---------------
200 | testing
251 | converted
250 | paid
预期产量
quote_key | id_flag | name
-------------------------------------
222 | 251 | converted
总之,我尝试返回所有没有“testing”标志的引号,即使存在其他标志。
我当前的查询仍在返回 quote_key
记录111因为 left join
但我不知道如何“过滤”出来。
当前查询
SELECT q.quote_key, q.id_flag, f.name FROM quotes_table AS q
LEFT JOIN flags_table AS f ON q.id_flag = f.id_flag
WHERE f.name != "testing"
系统示例图 quotes_table
以及 flags_table
:
执行测试的结果 LEFT JOIN
在 quotes_table
以及 flags_table
.
红色的行表示引号,请注意 quote_key
. 所以我试着从我的结果中去掉红色的条目,这样我只得到没有“testing”标志的引号。
sql fiddle示例
1条答案
按热度按时间lf3rwulv1#
希望这有帮助。