我有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 ,'%')
我得到了两次记录,所以我需要的是两者之间的某个地方。我非常擅长加入,所以在解释时要轻松。
答案 0 :(得分:0)
您必须更改表结构,并且需要添加具有此值的关系表:
订单:
dist_id, patientacct_id PRIMARY_KEY(dist_id, patientacct_id)
答案 1 :(得分:0)
首先,请使表结构关系化。在每个表中都有一个主auto_increment值,并使用Dlist外键中的主键到Patientacct。这样,一个简单的连接就可以获取你想要的记录。
关于显示器,你的意思是你不希望记录两次。由于您正在使用加入,您将与患者Bob和Billy一起获得Oakley的两条记录。这就是你想要的,在关系表中也可以通过简单的连接来实现。