Je me demande comment créer une requête SQL pour obtenir des messages uniquement des personnes que je suis. Je suppose que créer une requête de jointure SQL est la bonne façon, mais je ne sais pas comment. S'il vous plaît quelqu'un pourrait-il m'aider?SQL pour obtenir des messages seulement des gens que je suis
J'ai ces trois tables maintenant:
CREATE TABLE `users` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR(255) NOT NULL ,
`email` VARCHAR(255) NOT NULL ,
`password` VARCHAR(8) NOT NULL ,
`status` ENUM('active', 'inactive') NOT NULL
) ENGINE = MYISAM ;
CREATE TABLE `posts` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`user_id` INT NOT NULL ,
`body` VARCHAR(140) NOT NULL ,
`stamp` DATETIME NOT NULL
) ENGINE = MYISAM ;
CREATE TABLE `following` (
`user_id` INT NOT NULL ,
`follower_id` INT NOT NULL ,
PRIMARY KEY (`user_id` , `follower_id`)
) ENGINE = MYISAM ;
Merci beaucoup pour votre réponse.
Je pense qu'une jointure peut donner de meilleures performances. –
Généralement pas. C'était un "bogue" de performance dans SQL Server 2000 (et peut-être d'autres SQL) que de nombreux utilisateurs de cette version ont cru à tort est une règle générale pour tout le SQL. Il n'y a pas de raison logique pour que IN soit plus lent qu'une jointure (il doit effectivement faire moins de travail) et comme Joe Celko l'a écrit il y a plusieurs années, ce n'est généralement pas le cas. Même sur SQL Server 2005+, les sous-sélections basées sur l'IN sont presque toujours identiques à une jointure ou ne présentent qu'une différence de performance marginale. – RBarryYoung
Merci pour l'information. Est-ce aussi vrai pour les sous-groupes 'existes '? –