挑战:如何在随机或任意选择客户名称时列出与客户名称相关的所有信用卡

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了挑战:如何在随机或任意选择客户名称时列出与客户名称相关的所有信用卡相关的知识,希望对你有一定的参考价值。

我很难搞清楚这个问题。假设有一个客户名单和与之相关的信用卡列表,我想显示与他们相关的信用卡,但是随意或随机选择。我尝试手动硬编码名称,但我希望查询随机取名。

我尝试手动硬编码名称,但我希望查询随机取名。

mysql

SELECT credit_card.`CreditCard#` AS `Creditcard Number`,  customer.customername AS `Name`
FROM credit_card, customer, account
WHERE customer.CustomerName = "Bob white" ** 

这是硬编码的

AND holds_account.`Customer#` = customer.`Customer#`
AND credit_card.`CreditCard#` = holds_account.`CreditCard#`

我想显示与他们相关的信用卡,但任意或随机选择名称。 EX客户表:A B A D.

信用卡客户编号

         A: 12321432 
         B: 234324324
         A: 1231312213
         D: 234324433

答案应该是这样的:

A 12321432
A 1231312213

名称应随机选取。

答案

如果要随机选择10条记录,可以使用ORDER BY RAND() LIMIT 10

示例:SELECT * FROM customer ORDER BY RAND() LIMIT 10

另一答案

首先,学习使用正确的JOIN语法编写SQL:

SELECT c.`CreditCard#`,  
       c.customername AS `Name`
FROM credit_card cc JOIN
     customer c
     ON cc.`Customer#` = c.`Customer#` 

我不认为需要accounts,但如果是的话,你可以添加它。

如果您希望所有信用汽车随机选择客户,则选择子查询中的随机客户:

SELECT c.`CreditCard#`,  
       c.customername AS `Name`
FROM credit_card cc JOIN
     (SELECT c.*
      FROM customer c
      ORDER BY rand()
      LIMIT 10
     ) c
     ON cc.`Customer#` = c.`Customer#` ;

这假设所有客户都有信用卡。如果不是这种情况,那么您可能还需要包含逻辑:

SELECT c.`CreditCard#`,  
       c.customername AS `Name`
FROM credit_card cc JOIN
     (SELECT c2.*
      FROM customer c2
      WHERE EXISTS (SELECT 1 FROM credit_card cc2 WHERE cc2.`Customer#` = c.`Customer#`)
      ORDER BY rand()
      LIMIT 10
     ) c
     ON cc.`Customer#` = c.`Customer#` ;

以上是关于挑战:如何在随机或任意选择客户名称时列出与客户名称相关的所有信用卡的主要内容,如果未能解决你的问题,请参考以下文章

列出没有销售的客户和产品

如何在 Python 中列出 n 个数字并随机选择任意数字?

如何选择具有最大发票价值的客户名称[关闭]

如何在java中杀死名称服务器进程

作为客户端,如何获取 Stomp 队列或/和主题(它们的名称)列表?

存储具有唯一/随机名称的文件