![](/img/trans.png)
[英]How to use IN operator with AND operator in WHERE clause in SQL…?
[英]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.