mySql查询中间表(mySql query intermediate table)
我试图找出两个用户之间是否存在对话,但我无法想象如何在mysql中查询。
我的表是:
users
-----
id
name
conversations
-------------
id
conversation_user
-----------------
user_id
conversation_id
例如,我有两个用户和一个对话,所以在我的conversation_user表中
user_id conversation_id
1 1
2 1
如何检查这种关系是否存在?
先谢谢你。
i try to find out if a conversation between two users exist but i can't imagine how to query this in mysql.
My tables are:
users
-----
id
name
conversations
-------------
id
conversation_user
-----------------
user_id
conversation_id
For example, i have two users and one conversation so in my conversation_user table i have
user_id conversation_id
1 1
2 1
How to check if this relationship exist or not?
thank you in advance.
原文:https://stackoverflow.com/questions/38513710
更新时间:2019-12-23 11:40
最满意答案
你可以使用join:
SELECT
c1.*, c2.*
FROM
conversation_user c1
INNER JOIN
conversation_user c2
ON
c1.conversation_id = c2.conversation_id
WHERE
c1.user_id != c2.user_id;
您可以看一下这个更详细的SQLFiddle示例 。 它显示了一个带来用户名称的示例和一个按对话过滤的示例。
You can use join for that:
SELECT
c1.*, c2.*
FROM
conversation_user c1
INNER JOIN
conversation_user c2
ON
c1.conversation_id = c2.conversation_id
WHERE
c1.user_id != c2.user_id;
You can take a look at this SQLFiddle Example that is a bit more detailed. It shows an example of bringing the name of the users and one that filters by conversation.
2016-07-21
相关问答
问题中的SQL查询似乎有效,您只需添加其余的表和条件即可获得所需的数据。 用户填写表单并希望搜索所有成员(成员表)zipcode = 11111或zipcode = 22222(个人资料表)承诺= ANY,practice = ANY,gigs = 1,availability = ANY(技能表)lead_vocals = 1和lead_guitar = 1(流派表)alternative = 1,modern_rock = 1,heavy_metal = 1 您已经将一半查询放在请求中,除非它
...
您可以对UNION ALL使用条件聚合 : SELECT t1.acc_no, t1.name,
SUM(CASE WHEN t2.`date` = '2016-06-01' THEN amount END) AS '2016-06-01',
SUM(CASE WHEN t2.`date` = '2016-06-02' THEN amount END) AS '2016-06-02',
SUM(CASE WHEN t2.`date` = '2016-06-
...
你得到$row[field_name] , 如果你有两个同名但来自不同表的字段,你必须至少添加一个table.field AS somthing_else SELECT t1.id,t2.id AS 't2_id' ....
...
...
var_dump($row);
会给$row['id'],$row['t2_id'] 如果你不使用AS你将只获得$row['id'] (一个值丢失)。 You get it as $row[field_name], And if you have two f
...
你可以使用join: SELECT
c1.*, c2.*
FROM
conversation_user c1
INNER JOIN
conversation_user c2
ON
c1.conversation_id = c2.conversation_id
WHERE
c1.user_id != c2.user_id;
您可以看一下这个更详细的SQLFiddle示例 。 它显示了一个带来用户名称的示例和一个按对话过滤的示例。 You can use jo
...
这不是我做过的最好的查询,但我得到了你想要的结果: wwtest1 = table-1,wwtest2 =表2。 SELECT w1.cid AS cid, (SELECT SUM(total) FROM wwtest WHERE cid = 23) AS total, ((SELECT SUM(advance) FROM wwtest WHERE cid = 23) + (SELECT SUM(advance) FROM wwtest2)) AS advance, ((SELECT SUM(to
...
我了解https://cloud.google.com/bigquery/docs/reference/v2/tabledata/list willl可让您在不执行查询的情况下读取表格块(产生数据处理费用)。 这使您可以并行读取查询结果,并将所有查询写入临时表ID,您可以将其传递给此函数并提供不同的范围(使用startIndex,maxResults)。 I understand that https://cloud.google.com/bigquery/docs/reference/v2/ta
...
User_Exercise不需要单独的模型 您可以使用$this->belongsToMany从基本模型即User Note : 对于插入过程,您可以通过获取父ID $insertUser = User::create($userData); 然后 $insertUser->id用于获取最后一个插入ID 然后要检索User_Exercise您应该使用User模型中的$this->belongsToMany 例 在你的User模型中有这个 public function getUser() {
re
...
事情在这里:
作为提交的图像类型不会处理POST指令。 您需要使用实际的提交类型输入。
或者作为使用提交类型的按钮: DELETE
这就是为什么你的代码不会“触发”条
...
select
*
from
your_table
where Position = 2
and Rec_ID in (select Rec_ID from your_table where Sbj_ID = 9)
select
*
from
your_table
where Position = 2
and Rec_ID in (select Rec_ID from your_table where Sbj_ID = 9)