gpt4 book ai didi

php - 查询3张表,不重复

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

我有 3 张 table :
工作 |留言 |报价

jobs 表包含有关已发布职位的所有信息。 job_idauto_increment。如果针对作业 job_id 发布消息,则message表包含一条消息。

Quotes 表包含针对作业 job_id 提交的所有报价。

我想要:

 select all from jobs where ...blah
select if exists from messages any message where messages table job_id = job table job_id
select if exists from quotes any quote where quotes job_id = job table job_id

这可能吗?我做了这个左连接查询,但它给出了重复的结果。

    $sql = "SELECT DISTINCT jobs.job_id AS jobid,
jobs.worktitle AS wrktitle,
jobs.workinfo AS wrkinfo,
messages.message AS msg FROM jobs
LEFT JOIN messages ON
jobs.job_id = messages.job_id
LEFT JOIN quotes ON
jobs.job_id = quotes.workid";

请帮忙!谢谢史蒂夫

好吧,抱歉,我的问题不太好。我正在尝试查询我的工作表,这很简单。不过,我还有另外 2 个表通过作业 id 列与此表关联。消息和报价。消息表包含通过职位 ID 询问有关特定职位的任何问题 - 报价表包含通过职位 ID 针对特定职位提交的任何报价。我尝试查询作业表并通过作业 ID 加入消息和报价表。但这会产生作业表的重复行。是否可以查询作业表并显示任何消息或报价? – 史蒂夫·P

最佳答案

来自操作:”

<小时/>

作业 ID --- 001

标题 --- 替换窗口

详细信息——等等等等

消息 -- 消息 1

报价 - 100 英镑

<小时/>

职位 ID --- 001

标题 --- 替换窗口

详细信息——等等等等

消息 -- 消息 2

报价 -- 90 英镑

<小时/>

职位 ID --- 001

标题 --- 替换窗口

详细信息——等等等等

消息 -- 消息 3

报价 -- 110 英镑

<小时/>

我在哪里

Job id --- 001 

title --- replace window

Details --- blah blah

message -- message 1

message 2

message 3

quotes -- £100

£90

£110

"

鉴于引用和消息的数量可能会增加,结果集的列数或行数也必须增加。 SQL通常返回重复行,但有PIVOT函数可以添加列。参见这里:Dynamically create columns sql但换句话来说,在一对多关系(一个职位对多个报价)中,对于每个职位与报价相关的记录,将返回一行。

但是,您无法在 SQL 中执行任何明智的操作来产生所需的结果,因此您必须使用 PHP 或任何前端来执行此操作。我要做的是将第一个作业 ID、标题、详细信息写入屏幕,然后循环遍历结果集,添加引号和消息,直到找到新的作业 ID,然后重复。抱歉,我没有 PHP 答案。

关于php - 查询3张表,不重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25775336/

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