使用MySQL。Sql查詢顯示來自表A的數據和來自表B的數據,其中表B的parent_id在表B中使用連接加入
我有兩個表。表A和表B.
表A有具有表B.與表B的ID此ID標識爲表A crm_field和PARENT_ID
我試着這樣做查詢的一些價值觀。
select *
from tableA inner join tableB ON tableA.crm_field=tableB.parent_field
WHERE tableA.id = '75' AND
tableA.category != 'null' AND
tableA.category != 'No Category'
我預期的結果是從TABLEA了符合地方需求的數據將與tableB的持有的PARENT_ID等同於表A的crm_field的顯示屏。
實際結果是顯示tableB,除了包含值的parent_id。也似乎它查詢時crm_field = 0和parent_id = 0,當我想要它查詢時crm_field有一個像22也是在parent_id中找到的實際值。嘗試這樣做,而不是:
select *
from tableA inner join tableB ON tableA.crm_field=tableB.parent_field
WHERE tableA.id = '75' AND
tableA.category != 'null' AND
tableA.category != 'No Category' AND
tableA.crm_field != '0'
但它只顯示tableB的數據,我需要添加到tableA。
有沒有辦法使用連接查詢來做到這一點?
如果不是,我不妨做一個雙重查詢。
感謝
輸出示例:
tableA
id|name|crm_field|category
0|dog|0|hi
1|cat|22|hi
2|bear|0|null|
tableB
id|name|parent_id|
0|wild|22|
1|foo|0|
顯示應該是這樣的:
0|dog|0|hi
1|cat|22|hi
2|wild|22
- 如果這甚至有可能?
得到什麼,我想在這裏完成的重點是:
crm_field具有一定的價值。
但如果查詢在crm_field中看到22或21或兩者,則它應該顯示在tableB中找到的對應值。
知道我做了這個,如果crm_field == 21或22它會做另一個查詢將相應的值添加到數組。但我想用盡可能少的代碼來完成此任務,因此我正在嘗試使用join。
您使用的數據庫是? – JohnFx
抱歉。使用mysql – magicianiam
你是故意查詢字符串'空'還是你的意思是實際檢查空值? – JohnFx