php - 在一条语句中进行多项选择

标签 php mysql syntax

这很难解释,但我需要解释

- select id from customers
- foreach customer find the order with that id
-- foreach order (for that customer)
--- select product.name, product.max on order.productId=product.id

我不知道如何提取这些数据。我需要多个单独的选择?我可以写一个长的单个 sql 语句吗(';' 算作单独的 :P)。我如何从一行中拉出子行......

最佳答案

使用连接:

SELECT c.id, o.id, p.name, p.max
  FROM Customers AS c
       JOIN Orders AS o ON c.id = o.customer
       JOIN Product AS p ON o.productID = p.id

更有可能的是,您有一个 Orders 表和一个 OrderItems 表 - 只需添加一个具有适当条件的额外级别的 JOIN。

请注意,我假设您的表是“Orders”以避免与关键字“ORDER”发生冲突。我没有假设您从 MAX 函数中消除了 Product.Max 的歧义。您可能不得不担心您的 DBMS 允许什么(有些可以容忍关键字的滥用;有些则不能)。


容忍(过度容忍)DBMS 是 IBM Informix Dynamic Server (IDS):

CREATE TABLE table(null INTEGER, integer CHAR(3), date DECIMAL(10,0), decimal DATE);

它有效——它很可怕。但是避免了很多后期添加关键词的问题。

关于php - 在一条语句中进行多项选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1478334/

相关文章:

java - 将远程 Mysql 连接到 Netbeans

php - 带条件的 LEFT JOIN 未返回所需的数据

python - 用 Python 编写的 SQL 查询的语法问题

php - Laravel 邮件的可选参数

php - 准备观看YouTube观看次数

php - 递归算法似乎正确但不起作用

mysql - 完全盲目的SQL注入(inject)列枚举?

php - 哪个Joomla版本低于2并且接近1.5。支持 PHP 5.4 吗?

c# - 在没有函数或类语法的情况下使用 C# 括号

wpf - 绑定(bind)路径中的括号是什么意思?