mysql 多個 Id MySQL查詢多個ID

2021-10-20 22:20:53 字數 2867 閱讀 7894

匿名使用者

從您的問題來看,我相信您當前的表結構如下:table: user table: project table: shared

id | email | | id | user_id | content | | id | user_id | project_id

1 | [email protected] | | 1 | 1 | project for james | | 9 | 1 | 5

2 | [email protected] | | 2 | 1 | some other project for james | | 10 | 3 | 5

3 | [email protected] | | 3 | 2 | project for hannah | | 11 | 1 | 8

| | | 4 | 2 | a new project for hannah | | 12 | 2 | 8

| | | 5 | 2 | hannah's pride and joy | |

| | | 6 | 3 | lucy cracking down | |

| | | 7 | 3 | lucy's second project | |

| | | 8 | 3 | lucy's public stuff | |

示例: project.id, project.user_id as owner_id, shared.user_id as shared_id, project.content

from project

left join shared

on project.id = shared.project_id

and project.user_id <> ?

where project.user_id = ?

or shared.user_id = ?;

注意:。

此sql語句與問題中的sql語句之間的主要區別是and project.user_id <> ?

如果子句中沒有該條件,您將為該使用者的每個共享專案獲得重覆記錄。即。如果使用者已經與20個使用者共享了專案,那麼將有20個重複。

這是預期的行為,正如這裡所解釋的:php while語句回顯重複項$sql = "

select project.id, project.user_id as owner_id, shared.user_id as shared_id, project.content

from project

left join shared

on project.id = shared.project_id

and project.user_id <> ?

where project.user_id = ?

or shared.user_id = ?

$query = $mysqli->prepare($sql);

$query->bind_param("iii", $user_id, $user_id, $user_id);

$query->execute();

我建議更新表結構,使您有三個表(有效地:,和表充當兩個實體(codeusers/code>和table: user table: project table: project_user

id | email | | id | content | | id | user_id | project_id | role

1 | [email protected] | | 1 | project for james | | 1 | 1 | 1 | 1

2 | [email protected] | | 2 | some other project for james | | 2 | 1 | 2 | 1

3 | [email protected] | | 3 | project for hannah | | 3 | 2 | 3 | 1

| | | 4 | a new project for hannah | | 4 | 2 | 4 | 1

| | | 5 | hannah's pride and joy | | 5 | 2 | 5 | 1

| | | 6 | lucy cracking down | | 6 | 3 | 6 | 1

| | | 7 | lucy's second project | | 7 | 3 | 7 | 1

| | | 8 | lucy's public stuff | | 8 | 3 | 8 | 1

| | | | | | 9 | 1 | 5 | 2

| | | | | | 10 | 3 | 5 | 2

| | | | | | 11 | 1 | 8 | 2

| | | | | | 12 | 2 | 8 | 2

示例: project.id, project_user.user_id, project_user.role, project.content

from project

join project_user

on project_user.project_id = project.id

where project_user.user_id = ?;$sql = "

select project.id, project_user.user_id, project_user.role, project.content

from project

join project_user

on project_user.project_id = project.id

where project_user.user_id = ?

$query = $mysqli->prepare($sql);

$query->bind_param("i", $user_id);

$query->execute();

mysql物理id mysql物理結構

mysql是通過檔案系統對資料和索引進行儲存的。mysql從物理結構上可以分為日誌檔案和資料索引檔案。mysql在linux中的資料索引檔案和日誌檔案都在 var lib mysql目錄下。日誌檔案採用順序io方式儲存 資料檔案採用隨機io方式儲存。首先可以檢視mysql的檔案在linux中的那個目...

mysql 簡介 id MySQL日誌簡介

mysql中的日誌主要分為以下幾種 查詢日誌 慢查詢日誌 錯誤日誌 二進位制日誌 中繼日誌 事務日誌 說明 支援本文實驗使用的linux系統是centos7版本,使用的資料庫是base源自帶的mariadb,資料庫使用的儲存引擎使用預設的innodb 1 查詢日誌 記錄查詢語句 日誌儲存位置 日誌的...

mysql 排序id mysql怎麼按特定id排序

mysql如何按特定id排序 mysql如何按特定id排序 set foreign key checks 0 table structure for p drop table if exists p create table p id int 11 not null auto increment,n...