Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8813663
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 14, 20262026-06-14T03:54:47+00:00 2026-06-14T03:54:47+00:00

I have tables tags and items and a third table tagitem that matches tags

  • 0

I have tables tags and items and a third table tagitem that matches tags to items. Users can go to the item page which gets populated with a list of tags. Upon clicking on the tag, a row is inserted in the tagitem table, tagging the item.

To prevent users from applying the same tag to an item twice, I’d like the list of tags that comes up to exclude any already applied to the item. So I think the query that pulls the tags should have a condition in it that excludes tags already assigned to a given item. However, I am having trouble doing this.

Tables are:

tags

id|tag

items

id|item

tagitem

id|tagid|itemid

A query that pulls all the tags would just be:

"SELECT * FROM tags"

Since the table with the info on tags matched to items is tagitem, I have joined them. I need to figure out how to include a condition roughly described in parentheses below that excludes any tag that has an entry in the tagitem table for the item in question.

SELECT t.*,ti.*
FROM `tags` t
LEFT JOIN `tagitem` ti
on t.id = ti.tagid
WHERE
ti.tagid NOT IN (SELECT * FROM tagitem WHERE itemid = '22')
GROUP BY t.id

This is as far as I’ve gotten. (Right now I’m getting some wierd operand error.) Would appreciate any suggestions on proper way to do this. Thanks!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-14T03:54:49+00:00Added an answer on June 14, 2026 at 3:54 am

    One way to do it is by altering the table and adding CONSTRAINT on the table to have unique tag per item,

    ALTER TABLE tagitem ADD UNIQUE ti_idx (tagid,itemid)
    

    But if you only what do it in your query, try this one below

    SELECT  a.*
    FROM    tags a
            LEFT JOIN 
            (
                SELECT tagid 
                FROM tagitem 
                WHERE itemid = '22'
            ) b ON a.id = b.tagid
    WHERE   b.tagid IS NULL
    

    from your query above, when using NOT IN (or IN), the subquery should only return one column,

    ....
    WHERE ti.tagid NOT IN (SELECT tagid FROM tagitem WHERE itemid = '22')
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a database with two tables: tags and items. Each Item has a
Suppose I have table tags which has a field count that indicates how many
I have 3 tables: Foods table stores all food items, Tags table stores all
I'm working on an asp.net-mvc project. I have an Items table and a Tags
I have this table. I want to select back the items that don't exist
I have 3 tables. An "item" table and a "tag" table. Then I also
I have an items Table and a Tags table. Now what I would like
I have two tables. One is items , and one is tags . Query's
I have a History Table in SQL Server that basically tracks an item through
these are the tables I have: ------ ---------- ------- |tags| -- |tagitems| -- |items|

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.