gpt4 book ai didi

php - MySQL:连接两个表/如果表A中的特定字段不为空,则从表B中的特定行读取所有数据

转载 作者:可可西里 更新时间:2023-11-01 07:45:29 24 4
gpt4 key购买 nike

http://i.stack.imgur.com/ZRH9c.jpg (请参阅数据库结构示例图像)

大家好

我正在尝试在两个以特定字母开头的表中搜索单词,但我不知道如何进行正确的连接。

如果“user_vocabulary”中没有给出 voc_id,我想从 user_vocabulary 中获取单词,但如果有 voc_id,我想从“system_vocabulary”中读取所有数据,其中 user_vocabulary.voc_id=system.vocabulary。编号。

我只用它来阅读一张表(仅供引用): SELECT * FROM user_vocabulary WHERE word LIKE '$user_input%' ORDER BY word ASC

我发现了一些或多或少相似的帖子,但似乎无法将它们转换为这个问题。

非常感谢任何帮助。干杯汤姆

最佳答案

您希望从 user_vocabulary.wordsystem_vocabulary.word 中获取的值最终出现在输出的同一列中。您可以使用 IF 函数执行此操作:

SELECT
uv.id,
IF(uv.voc_id = 0,uv.word,sv.word) AS WORD
FROM user_vocabulary uv
LEFT JOIN system_vocabulary sv
ON (uv.voc_id = sv.id)
HAVING word LIKE '%user_input%'

+------+-------+
| id | word |
+------+-------+
| 1 | hat |
| 2 | home |
| 3 | hello |
+------+-------+
3 rows in set (0.00 sec)

关于php - MySQL:连接两个表/如果表A中的特定字段不为空,则从表B中的特定行读取所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10088467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com