试图显示2个表数据

时间:2012-06-25 04:51:30

标签: php mysql sql join group-by

我有2张桌子

表名Dist

NAME|Phone|ID 
----------------
Oakley|555-555|1
Maui|666-666|2
lux|777-7777|3

表名Patientacct

Name|prescription|id|orderfrom
-------------------------------
bob|20-20|1|oakley
billy|15-20|2|Oakley, Maui
kim|20-20|3|Lux

我正在寻找像

这样的显示器
Oakley
--------------------
Bob
Billy
Maui
------------------
Billy
Lux
--------------
kim

到目前为止的试验

SELECT *
FROM `dist`
JOIN `patientacct` ON patientacct.dist LIKE CONCAT('%', `dist`.name ,'%')
GROUP BY `dist`.name

这显示只有1个

如果我逐个放弃小组:

SELECT *
FROM `dist`
JOIN `patientacct` ON patientacct.dist LIKE CONCAT('%', `dist`.name ,'%')

我得到了两次记录,所以我需要的是两者之间的某个地方。我非常擅长加入,所以在解释时要轻松。

2 个答案:

答案 0 :(得分:0)

您必须更改表结构,并且需要添加具有此值的关系表:

订单:

dist_id, patientacct_id PRIMARY_KEY(dist_id, patientacct_id)

答案 1 :(得分:0)

首先,请使表结构关系化。在每个表中都有一个主auto_increment值,并使用Dlist外键中的主键到Patientacct。这样,一个简单的连接就可以获取你想要的记录。

关于显示器,你的意思是你不希望记录两次。由于您正在使用加入,您将与患者Bob和Billy一起获得Oakley的两条记录。这就是你想要的,在关系表中也可以通过简单的连接来实现。