我目前有两张桌子," tc_services"和" tc_users"它们都有一个" USER_ID"字段和" BILLING_ID"领域。我需要一起查询这些内容,找到任何结果......
A)" tc_services"没有" BILLING_ID"
B)" tc_users"不包含" USER_ID"这与coorelating" tc_services"
的那些相匹配我正在尝试将JOIN查询语句放在一起,如下所示,但到目前为止还无法解决。任何帮助将不胜感激!
SELECT *
FROM tc_services AS services
JOIN tc_users AS users
WHERE services.USER_ID NOT IN users.USER_ID AND services.BILLING_ID = '';
答案 0 :(得分:0)
看到你的评论后的第二次编辑:
只做
SELECT
*
FROM tc_services
WHERE tc_services.billing_id IS NULL AND
tc_services.user_id NOT IN (SELECT user_id FROM tc_users)
不需要加入
编辑: 在重新阅读您的问题后,您可能需要“LEFT JOIN”
看到这张图片:http://i.stack.imgur.com/66zgg.png
所以你的查询看起来像
SELECT
*
FROM tc_users u
LEFT JOIN tc_services s ON a.user_id = s.user_id
WHERE s.billing_id IS NULL
可以为您提供没有结算ID的用户列表。
然后第二个问题类似。
原始答案: 听起来你可能想要使用'Union'而不是'Join'
答案 1 :(得分:0)
类似的东西:
SELECT SERVICE_ID, COUNT(users.USER_ID)
FROM tc_services AS services
LEFT JOIN tc_users AS users ON services.USER_ID = users.USER_ID
WHERE services.BILLING_ID = ''
GROUP BY services.SERVICE_ID HAVING COUNT(users.USER_ID) = 0