gpt4 book ai didi

php - 我需要有关 postgresql select 查询语句的帮助

转载 作者:行者123 更新时间:2023-11-29 12:33:50 26 4
gpt4 key购买 nike

我一直在使用带有 php 项目的 postgresql 数据库,我只是想构建一个查询。这是场景。

假设我有几个表,FOO 和 BAR

表 FOO 如下所示:

| foo_id | foo_name | foo_data  |----------------------------------|   1    | john     | son       ||   2    | jane     | daughter  ||   3    | sam      | son       ||   4    | sally    | daughter  |

Table BAR looks like this

| bar_id | bar_foo_id | bar_fooParent_id | bar_content            |----------------------------------|   1    | 1          |       1          | yabba-dabba-doo        ||   2    | 2          |       1          | scooby-scooby-doo      ||   1    | 3          |       888        | don't have a cow, man  ||   2    | 4          |       999        | d'oh!                  |

I can't change the table schema, everything is as it is.

But - I can pass a value through PHP, let's call it PARENT, that represents a value from bar_fooParent_id (so I can pass 1,2,3...657,888,999 etc).

And - foo_id in table FOO maps to bar_foo_id in table BAR.

I would like to build a SELECT Query that combines data from both tables FOO and BAR. Something like:

SELECT BAR.bar_content, (and other BAR.columns) , FOO.foo_name, FOO.foo_data 
FROM FOO,BAR WHERE bar_fooParent_id=".$PARENT." AND " ...?

在哪里?有点困惑。

我需要根据表 BAR 中的选定行从表 FOO 中获取 foo_name 和 foo_data 的行。因此,如果将值 1 传递给 $PARENT,则 bar_fooParent_id 将为 1,我将从表 BAR 中获取前两行,并使用它们各自的 bar_foo_ids(值为 1 和 2)从表的行中获取数据foo_id 为 1 和 2 的 FOO(在本例中为前两行)。

我已经尝试过类似于下面的语句(为简单起见,值是硬编码的)

SELECT * from BAR,FOO where BAR.bar_fooParent_id=1 AND (BAR.foo_id=1 OR BAR.foo_id=2) AND (FOO.foo_id=1 OR FOO.foo_id=3)

select * from BAR where BAR.barr_fooParent_id=1 IN (SELECT foo_id,foo_name from kid WHERE foo_id=1 OR foo_id=3 ) 

没有太大的成功。基本上数据应该理想地返回为

foo_name  |  foo_data  | bar_content    | other BAR columns ... |_________________________________________________________________john      |  son       | yabba-dabba-do | etc.                  |jane      |  daughter  | scooby-dooby-do| etc.                  |

(为格式道歉,不确定第三个结果表发生了什么)

如果有人可以帮助为 postgreSQL 构建这个 SELECT 查询,我将不胜感激。

有什么想法吗?谢谢。

爱德华

最佳答案

听起来您只需要一个简单的连接:

SELECT f.foo_name, f.foo_data, b.bar_content
FROM foo f
INNER JOIN bar b ON b.bar_foo_id = f.foo_id
WHERE b.bar_fooParent_id = 1

关于php - 我需要有关 postgresql select 查询语句的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14165650/

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