选择加入的查询问题

时间:2014-04-22 16:44:15

标签: mysql select join

您好,请帮我这个,

stent table

enter image description here

bal table

enter image description here

with stent_size 20来自两个表,current_status = co_qc_comeplete和status = added,我想只得到5条记录,而不是在我的选择查询中我得到了50个recrods ..我很困惑..

我想只有5张支架表的记录和bal表的连接,并希望从bal table获得任何5条记录。

任何人都可以帮我为这个创建选择查询..

提前致谢..


编辑:

select * from stent as sd 
left join bal as bd on sd.stent_size = bd.stent_size 
where sd.current_status = "CO_QC_Complete" 
  and sd.stent_size = "20" 
  and bd.status = "added" 

1 个答案:

答案 0 :(得分:2)

select * from stent as sd 
left join bal as bd on sd.stent_size = bd.stent_size 
where sd.current_status = "CO_QC_Complete" 
and sd.stent_size = "20" 
and bd.status = "added" 

返回50条记录,因为它需要所有bal(显示10条记录)并连接支架(显示5条记录),其中stent_size = stent_size。 (每个bal记录与所有五个支架记录配对)

保存ID时,您的数据没有什么独特之处,因此加入这些表时可能会遇到麻烦。

再多想一想,我想我得到了你想要的东西。

试试这个:

 Select Distinct st.id, st.stent_material, st.stent_size, st.stock_qty, st.current_status, 
 bal.diameter, bal.lot_no, bal.quantity, bal.received_from, bal.expiry_date,
 bal.status, bal.created_date, bal.modified_date from stent st
 INNER JOIN bal ON bal.stent_size = st. stent_size
 where st.current_status = "CO_QC_Complete" 
 and st.stent_size = "20" 
 and bal.status = "added"