簡體   English   中英

如何在 WHERE 子句中使用帶有 IN SELECT 子查詢的 SQL OR 運算符?

[英]How do I use the SQL OR operator with a IN SELECT subquery in a WHERE clause?

此查詢工作正常並返回包含“がめ”的所有閱讀元素:

SELECT re.ENTRY_ID, 
       group_concat(re.VALUE, '§') AS read_value, 
       group_concat(re.FURIGANA_BOTTOM, '§') AS furigana_bottom, 
       group_concat(re.FURIGANA_TOP, '§') AS furigana_top, 
       group_concat(gloss.GLOSS_VALUE, '§') AS gloss_value
FROM Jmdict_Reading_Element AS re 
JOIN Jmdict_Gloss AS gloss ON re.ENTRY_ID = gloss.ENTRY_ID
LEFT JOIN Jmdict_Kanji_Element AS ke ON re.ENTRY_ID = ke.ENTRY_ID
WHERE re.ENTRY_ID IN (SELECT ENTRY_ID 
                      FROM Jmdict_Reading_Element 
                      WHERE VALUE LIKE "がめ")
GROUP BY re.ENTRY_ID

但是一旦我嘗試這樣做:

SELECT re.ENTRY_ID, 
       group_concat(re.VALUE, '§') AS read_value, 
       group_concat(re.FURIGANA_BOTTOM, '§') AS furigana_bottom, 
       group_concat(re.FURIGANA_TOP, '§') AS furigana_top, 
       group_concat(gloss.GLOSS_VALUE, '§') AS gloss_value
FROM Jmdict_Reading_Element AS re
JOIN Jmdict_Gloss AS gloss ON re.ENTRY_ID = gloss.ENTRY_ID
LEFT JOIN Jmdict_Kanji_Element AS ke ON re.ENTRY_ID = ke.ENTRY_ID
WHERE re.ENTRY_ID IN (SELECT ENTRY_ID
                      FROM Jmdict_Reading_Element
                      WHERE VALUE LIKE "がめ")
   OR gloss.ENTRY_ID IN (SELECT ENTRY_ID
                         FROM Jmdict_Gloss
                         WHERE GLOSS_VALUE LIKE "game")
GROUP BY re.ENTRY_ID

它返回所有類似於“游戲”的光澤元素,但不返回類似於“がめ”的閱讀元素。 怎么來的? 在 SQL 方面,我是一個初學者,所以我可能會離題。

看起來您不需要子查詢,因為它們只是查看已經加入的表。 只需使用常規 where 子句:

SELECT distinct re.ENTRY_ID, 
       group_concat(re.VALUE, '§') AS read_value, 
       group_concat(re.FURIGANA_BOTTOM, '§') AS furigana_bottom, 
       group_concat(re.FURIGANA_TOP, '§') AS furigana_top, 
       group_concat(gloss.GLOSS_VALUE, '§') AS gloss_value
FROM Jmdict_Reading_Element AS re
JOIN Jmdict_Gloss AS gloss ON re.ENTRY_ID = gloss.ENTRY_ID
LEFT JOIN Jmdict_Kanji_Element AS ke ON re.ENTRY_ID = ke.ENTRY_ID
WHERE (re.VALUE LIKE 'がめ' or OR gloss.GLOSS_VALUE LIKE 'game')
GROUP BY re.ENTRY_ID

暫無
暫無

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

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