1

したがって、MySQLデータベースには2つのテーブルがあります。1つは「ユーザー」用で、もう1つは「注文」用です。ここで、注文の各エントリはユーザーによる注文です(一部のユーザーは複数の注文を持つことができますが、ない場合もあります) 。私はレポートクエリに取り組んでいます。必要なレポートの1つは、注文したことのないユーザーのリストです。MySQLクエリに関しては、まだ少し初心者なので、これを行う方法がわかりません。それが何か違いを生む場合、クエリはPHPを介して配置されます。

各テーブルの列は次のとおりです(簡略化)。

ユーザー:

ID
Name

注文:

OrderID
OrderName
CustomerID      (corresponds to User.ID that placed the order)

ここでの助けは素晴らしいでしょう。ありがとう!

4

4 に答える 4

2

on Ordersを使用して、LEFT JOINOrderIdがnullかどうかを確認します。

SELECT U.*
FROM
 Users U
 LEFT JOIN Orders O ON(U.ID = O.CustomerID)
WHERE
 O.OrderId IS NULL

SQLFiddle

于 2012-08-28T22:08:25.337 に答える
1
SELECT ID, Name
FROM users 
WHERE ID NOT IN (SELECT DISTINCT customerID FROM Orders)
于 2012-08-28T22:04:33.060 に答える
0

したがって、基本的には、そのユーザーによって行われていない注文を探しています

Select * from Orders where CustomerID = 5 //5 is the id of the custumer

名前で検索する場合

Select * from Orders LEFT JOIN Users on Users.ID Where Users.name ='Mark'

結果がない場合は、顧客が何も注文していないことを意味します

于 2012-08-28T22:09:35.673 に答える
0

試す

SELECT U.*
FROM   Orders a
           RIGHT JOIN Users b 
               ON b.ID = a.CustomerID
WHERE  a.OrderId IS NULL
于 2012-08-28T22:19:29.417 に答える