sql >> Databáze >  >> RDS >> Mysql

Dotazování 2 tabulek v jednom dotazu

Použijte:

SELECT p.id,
       p.title, 
       p.body
  FROM POSTS p
  JOIN CATEGORIES c ON c.postid = p.id
 WHERE c.category = 'politic'

Problém, který mám s vaší tabulkou CATEGORIES, je ten, že uložení hodnoty kategorie jako řetězce znamená, že data nejsou normalizována – místo toho byste měli mít tabulku CATEGORY:

KATEGORIE

  • category_id (primární klíč, auto_increment)
  • popis_kategorie

...a použijte category_id hodnotu v CATEGORIES tabulka:

KATEGORIE

  • category_id (primární klíč, cizí klíč pro CATEGORY.category_id)
  • post_id (primární klíč, cizí klíč k POSTS.postid)


  1. Pamatujte na to při formátování datového typu TIME v SQL Server (T-SQL)

  2. Python 'float64' nelze převést na typ MySQL, ale v ručním dotazu to není žádný problém

  3. SQL injection útok s php

  4. ClassNotFoundException s PostgreSQL a JDBC