Mysql
計算一個表中存在的 id 數,該表中未針對特定使用者顯示在另一個表中
我有兩個表我想計算第一個顯示的 id 的數量,這不是第二個相對於使用者 id 我該怎麼做?
例如。
情況1
表格1。
|id|data |User_id |4 |Some data |12 |5 |Another data |8 |6 |Some other data|6
表2
|id|table1Id|userId| |1 |4 |12 | |2 |5 |14 | |3 |12 |12 |
案例2
表格1。
|id|data |userid |4 |Some data |12 |5 |Another data |24 |6 |Some other data|32 |7 |Some more data |12
表2
|id|table1Id|userId| |1 |4 |12 | |2 |5 |14 | |3 |12 |12 |
我想做的是這個。
我想知道 table1 中有多少 id 出現在使用者 12 的 table2 中。
我怎樣才能做到這一點?
情況 1 它應該返回 0
Case2 它應該返回 1
你可以通過使用得到它**
NOT EXISTS
**第一個例子:
create table table1 (id int, data varchar(100), user_id int); insert into table1 values (4, 'some data', 12); insert into table1 values (5, 'another data', 8); insert into table1 values (6, 'some another data', 6); create table table2 (id int, tableid int, user_id int); insert into table2 values (1, 4, 12); insert into table2 values (2, 5, 14); insert into table2 values (3, 12, 12);
SELECT count(*) coincidences FROM table1 WHERE user_id = 12 AND NOT EXISTS (SELECT 1 FROM table2 WHERE tableid = table1.id AND user_id = table1.user_id);
| 巧合| | -----------: | | 0 |
dbfiddle在這裡
第二個例子:
create table table1 (id int, data varchar(100), user_id int); insert into table1 values (4, 'some data', 12); insert into table1 values (5, 'another data', 24); insert into table1 values (6, 'some another data', 32); insert into table1 values (7, 'some more data', 12); create table table2 (id int, tableid int, user_id int); insert into table2 values (1, 4, 12); insert into table2 values (2, 5, 14); insert into table2 values (3, 12, 12);
SELECT count(*) coincidences FROM table1 WHERE user_id = 12 AND NOT EXISTS (SELECT 1 FROM table2 WHERE tableid = table1.id AND user_id = table1.user_id)
| 巧合| | -----------: | | 1 |
dbfiddle在這裡