gpt4 book ai didi

php - mysql 查询(连接)和添加子查询

转载 作者:行者123 更新时间:2023-11-30 23:11:00 24 4
gpt4 key购买 nike

我有这个查询,它正确显示了结果。我没有使用 join,但它似乎仍然返回正确的值,这怎么可能?

SELECT connections.id,
connections.word_id,
connections.order_id,
connections.top,
connections.deleted,
(UNIX_TIMESTAMP() - UNIX_TIMESTAMP(connections.modified)) AS modified_ago,
words_en.word,
(CASE WHEN words_en.user_id = 1 THEN "You" ELSE words_en.user_id END) AS created_by
FROM connections, words_en
WHERE connections.word_id = words_en.id AND connections.user_id = 1
IN (SELECT COUNT(*) connections WHERE /* Result of previous select connections.word_id */ AND connections.user_id != 1)
ORDER BY connections.order_id
  1. 这样做是否足够:connections.word_id = words_en.id 加入?

  2. 我还想为此添加子查询。它的语法是什么?

子查询应该计算 conenctions.word_id 出现在连接表中的次数,其中 connections.user_id != 1 因此其他用户使用这个词的次数。

  1. 我还需要另一个连接,以便为 words_en.user_id 获取 users.name_surname

最佳答案

要连接表,我们可以使用 ,(逗号)或连接关键字。如果我们使用 ,(逗号),它将根据我们的条件给出准确的结果。如果我们使用 join 关键字,我们可以使用多种类型的连接,如 left join right join 等等。这些所有连接都会产生不同的结果。

我们可以说,(逗号)join 与 JOIN 相同,但与 LEFT JOIN 不同。

下面是编写子查询的例子

SELECT connections.id,
connections.word_id,
connections.order_id,
connections.top,
connections.deleted,
(UNIX_TIMESTAMP() - UNIX_TIMESTAMP(connections.modified)) AS modified_ago,
words_en.word,
words_en.user_id
FROM connections, words_en
WHERE connections.word_id = words_en.id AND connections.user_id IN (select id from connections)
ORDER BY connections.order_id

select id from connections是子查询

第三点试试下面

SELECT users.name_surname 
FROM users, words_en
WHERE users.user_id = words_en.user_id
ORDER BY users.user_id

关于php - mysql 查询(连接)和添加子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19725337/

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