我有一张包含家畜(“牲畜”)列表的表,它会定期更新和更改。我还有第二个表格(“说明”),其中包含两列“科学”和“说明”。从表B中选择数据,其中表B中的字段与表A匹配(php mySQL)
当两个表中的科学字段匹配但不知道如何最好地做到这一点时,我需要从描述表中选择描述字段。
希望这是有道理的,任何的帮助深表感谢
我有一张包含家畜(“牲畜”)列表的表,它会定期更新和更改。我还有第二个表格(“说明”),其中包含两列“科学”和“说明”。从表B中选择数据,其中表B中的字段与表A匹配(php mySQL)
当两个表中的科学字段匹配但不知道如何最好地做到这一点时,我需要从描述表中选择描述字段。
希望这是有道理的,任何的帮助深表感谢
既然你有你的两个表之间的不匹配(在livestock
意味着并不是所有的行有各行的description
),你最有可能使用的OUTER JOIN
(LEFT
或RIGHT
),以实现自己的目标
SELECT l.*, d.description
FROM livestock l LEFT JOIN description d
ON l.scientific = d.scientific
这里是SQLFiddle演示
延伸阅读
在一个侧面说明:当问查询相关的问题,尤其是当你没有提供您查询的版本,请至少帮助那些谁希望能帮助您和您提供表格架构,样本数据以及基于它的所需输出。更好的是花一分钟时间,并用您的样本数据创建sqlfiddle。
是正确的答案。 +1 – 2013-08-02 20:32:36
@ user2647237它解决了您的问题吗?你的问题需要更多帮助吗? – peterm
假设表-A的牲畜表,表-B的名称与它说明中的表,你会想加入的表上的“科学'字段。
SELECT table_a.*, table_b.Description
FROM table_a
JOIN table_b ON table_a.Scientific = table_b.Scientific
你会想用正确的表名来代替table_a
和table_b
。
我不完全确定如何做到这一点,但我相信你需要做一个表连接。 –
'SELECT a。*,b.Description FROM livestock a INNER JOIN description b ON a.Scientific = b.Scientific' - try that。 –
你可以给我们一个表创建查询你有吗?使用LEFT加入的 – Badmiral