Toon posts:

[mysql] Drie tabellen doorzoeken

Pagina: 1
Acties:
  • 32 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb de volgende situatie:
1 tabel ARTICLES met veld ID
1 tabel ITEMS met veld ARTICLEID en veld TEXT (en veld ID)
1 tabel PHOTOS met veld ITEMID en veld TEXT (en veld ID)

Foto's "hangen" dus aan items, en items "hangen" weer aan articles.

Wat ik wil: zoeken op "text" in het algemeen, dus zowel text van Items als text van Foto's. Als het sleutelwoord voorkomt in items.text of photos.text, display dan het ID van het artikel waaraan de foto of het item "hangt".

Welk MySQL statement doet dit? Ik kwam niet verder dan .
"SELECT articleid FROM items, photos WHERE INSTR(lcase(items.textcontent),lcase('$needle')) OR INSTR(lcase(photos.description),lcase('$needle')) AND (photos.itemid = items.id)";

Verwijderd

SQL:
1
2
3
4
5
6
7
8
9
10
11
12
SELECT
   articles.id
FROM
   articles
      LEFT OUTER JOIN
         items ON items.articleid = articles.id
      LEFT OUTER JOIN
         photos ON photos.itemid = items.id
WHERE
   items.text LIKE '%$needle%'
OR
   photos.text LIKE '%$needle%'

Zoiets zal het waarschijnlijk wel worden. Voor zover ik weet is LIKE gewoonlijks case-insensitive.

Verwijderd

Topicstarter
Ik heb nu inderdaad voor elkaar gekregen wat ik wilde. Bedankt!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Standaard SQL, standaard joinen van tabellen, en een standaard where. Dit had je zelf moeten kunnen uitzoeken door een SQL handleiding door te nemen.

[flame](bovendien: zelfs cheatah kan het :+ )[/flame]

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Dit topic is gesloten.